1 回答

TA貢獻1851條經驗 獲得超4個贊
看來你確實想多了。React 允許您使用任何類型的有效 HTML 元素(語義或非語義)構建和組合組件。
建立可訪問的網站是一個很好的做法??紤]到這一點,您可以將各種語義元素劃分為組件。這些組件可以是類組件或功能組件?(如果您使用React Hooks,它們都是功能組件)。
這是一個簡單的例子:
class App extends React.Component {
? state = {
? ? name: 'Amazing Startup'
? }
??
? render() {
? ? return(
? ? ? <React.Fragment>
? ? ? ? <Header name={this.state.name}/>
? ? ? ? <Main />
? ? ? ? <Footer />
? ? ? </React.Fragment>
? ? )
? }
}
function Header({ name }) {
? return (
? ? <header>
? ? ? <h1>Hello! We are {name}</h1>
? ? </header>
? )
}
function Main() {
? return (
? ? <main>
? ? ? <p>Important stuff goes here..</p>
? ? </main>
? )
}
function Footer() {
? return (
? ? <footer>
? ? ? <p>Made with React - 1 Hacker Way Menlo Park, CA 94025</p>
? ? </footer>
? )
}
ReactDOM.render(<App />, document.getElementById('root'));
body {
? font-family: sans-serif;
? ?min-height: 100vh;
? ?margin: 0;
}
#root {
? display: grid;
? grid-template-columns: 1fr;
? grid-template-rows: 1fr 2fr 1fr;
}
header {
? font-size: 0.8rem;
? background-color: deepskyblue;
? padding: 0.5rem;
}
main {
? background-color: limegreen;
? padding: 0.5rem;
}
footer {
? background-color: orange;
? padding: 0.5rem;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root"></div>
值得注意的是,您絕對可以將所有必需的 HTML 元素放置在單個組件中。然而,分離功能是件好事,這反過來又會教您如何組合組件,這是它們的主要設計原則之一。

TA貢獻1856條經驗 獲得超17個贊
所有支持的 html 屬性
JSX 支持所有 html 標簽。所有正常的 html 語義都適用于 React JSX。
Fragment
React.Fragment 組件允許您在 render() 方法中返回多個元素,而無需創建額外的 DOM 元素
正確的 React JSX 語法是每個 React 組件返回一個節點,通常實現如下
render?( ??<div> ????{?/*?multiple?children?*/?} ??</div> );
但這基本上將一個無用的 div 注入到 DOM 中。Fragment
允許以下不會污染 DOM 的操作。
render?(??<Fragment> ????{?/*?multiple?children?*/?} ??????</Fragment>) ??????;
- 1 回答
- 0 關注
- 167 瀏覽
添加回答
舉報