React 生成標簽的幾種方式

react 生成標簽的幾種方式

/*
* jsx 命名規(guī)范:
* React 可以渲染 HTML 標簽 (strings) 或 React 組件 (classes)。
*
React DOM 首先會比較元素內容先后的不同,而在渲染過程中只會更新改變了的部分。ps:是不是意味著要勁量的使單個組件不要太大?
* */

//要渲染 HTML 標簽,只需在 JSX 里使用小寫字母的標簽名。
//注意,原生 HTML 元素名以小寫字母開頭,而自定義的 React 類名以大寫字母開頭,比如 HelloMessage 不能寫成 helloMessage。
// 除此之外還需要注意組件類只能包含一個頂層標簽,否則也會報錯。如el2
//單個標簽直接寫,不推薦
const el1 = <h1>這是第一個標簽元素</h1>;

ReactDOM.render(
    el1, document.getElementById('el1')
);
//建議使用div 或者括號包裹起來
const el2 = <div>
    <h1>這是第二個標簽元素</h1>
    <span>代碼中嵌套多個 HTML 標簽,需要使用一個標簽元素包裹它</span>
</div>;
ReactDOM.render(
    el2, document.getElementById('el2')
);

//使用括號包裹起html標簽, 推薦
const el3 = (
    <div>
        <h1>這是第三個標簽元素</h1>
        <span>代碼中嵌套多個 HTML 標簽,需要使用一個標簽元素包裹它</span>
    </div>
);
ReactDOM.render(
    el3, document.getElementById('el3')
);

//要渲染 React 組件,只需創(chuàng)建一個大寫字母開頭的本地變量。
const El4 = React.createClass({
    render: function () {
        return <div>
            <h1>這是第4個組件</h1>
            <span>以組件方式定義</span>
        </div>
    }
});
ReactDOM.render(
    <El4/>, document.getElementById('el4')
);

//組件定義方式2
function El5(props) {
    return <div>
        <h1>這是第5個標簽組件 {props.selfVal}</h1>
        <span>以組件方式定義</span>
    </div>
}

ReactDOM.render(
    <El5/>, document.getElementById('el5')
);

//方式3 使用 ES6 class 來定義一個組件:
class El6 extends React.Component {
    render() {
        return <div>
            <h1>這是第6個標簽組件</h1>
            <span>以組件方式定義</span>
        </div>
    }
}

ReactDOM.render(
    <El6/>, document.getElementById('el6')
);


//拓展寫法
const el7 = <El5 selfVal='重寫為第7組件'/>;
ReactDOM.render(
    el7, document.getElementById('el7')
);


//todo 嘗試樣式

const elStyle = (
    <div>
        <h1 className='titleStyle'>這是測試樣式</h1>
    </div>
);
ReactDOM.render(
    elStyle, document.getElementById('el8')
);
// 大括號內大引號為字符串,不帶則為變量
const elStyle2= (
    <div>
        <h1 className={'ttBlue'}>這是測試樣式2s</h1>
    </div>
);
ReactDOM.render(
    elStyle2, document.getElementById('el9')
);

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test React </title>
    <link rel="stylesheet" href="../css/createElementDemo.css">
</head>
<body>
<div id="el1"></div>
<div id="el2"></div>
<div id="el3"></div>
<div id="el4"></div>
<div id="el5"></div>
<div id="el6"></div>
<div id="el7"></div>
<div id="el8"></div>
<div id="el9"></div>
<div id="el10"></div>
<div id="el11"></div>
<div id="el12"></div>

</body>
<script src="../js/lib/react.min.js"></script>
<script src="../js/lib/react-dom.min.js"></script>
<script src="../js/lib/babel.min.js"></script>
<script type="text/babel" src="../js/comment/createElemeteDemo.js">
</script>
</html>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,271評論 25 708
  • 以下內容是我在學習和研究React時,對React的特性、重點和注意事項的提取、精練和總結,可以做為React特性...
    科研者閱讀 8,416評論 2 21
  • 一件事,可大可小,可是,在這里的每一件事,也許都是大事。因為你壓根不知道他的大小,雖然你的目的很單純,可是只要結果...
    anydi閱讀 347評論 0 0
  • 最近天氣很棒。 仰面漫天的蔚藍,陽光直射大地。即使有點微微的冷風,也想要懶懶地暴露在這天地間。稍稍蜷縮著身體,任強...
    jay4497閱讀 226評論 0 1

友情鏈接更多精彩內容