這種模式經常用於由側邊欄、主欄等組成的常見佈局。
・App.js
import { SplitScreen } from "./components/split-screen"; const LeftSide = ({ title }) => { return <h2 style={{ backgroundColor: "red" }}>{title}</h2>; }; const RightSide = ({ title }) => { return <h2 style={{ backgroundColor: "blue" }}>{title}</h2>; }; function App() { return ( <SplitScreen leftWidth={1} rightWidth={3}> <LeftSide title={"Left"} /> <RightSide title={"Right"} /> </SplitScreen> ); } export default App;
・此組件將 SplitScreen 組件中的 LeftSide 和 RightSide 組件作為子組件包裝。
・我將標題道具傳給 LeftSide 和 RightSide 組件。
·我將 leftWidth 和 rightWidth 屬性傳遞給 SplitScreen 元件,以便我可以更改每個元件的寬度。
・split-screen.js
import React from "react"; import { styled } from "styled-components"; const Container = styled.div` display: flex; `; const Panel = styled.div` flex: ${(p) => p.flex}; `; export const SplitScreen = ({ children, leftWidth = 1, rightWidth = 1 }) => { const [left, right] = children; return ( <Container> <Panel flex={leftWidth}>{left}</Panel> <Panel flex={rightWidth}>{right}</Panel> </Container> ); };
・此組件由左組件和右組件組成,它們作為子組件接收。
・我可以將每個接收 props 的元件的寬度改為 leftWidth 和 rightWidth。
以上是React 設計模式~佈局元件~的詳細內容。更多資訊請關注PHP中文網其他相關文章!