美文网首页
React元素渲染

React元素渲染

作者: meng_281e | 来源:发表于2018-10-10 16:48 被阅读0次

    1.渲染节点

    <div id="example"></div>
    const element = <h1>Hello, world!</h1>;
    ReactDOM.render(
        element,
        document.getElementById('example')
    );
    

    React 元素都是不可变的。当元素被创建之后,你是无法改变其内容或属性的。
    目前更新界面的唯一办法是创建一个新的元素,然后将它传入 ReactDOM.render() 方法:
    来看一下这个计时器的例子:

    function tick() {
      const element = (
        <div>
          <h1>Hello, world!</h1>
          <h2>现在是 {new Date().toLocaleTimeString()}.</h2>
        </div>
      );
      ReactDOM.render(
        element,
        document.getElementById('example')
      );
    }
    setInterval(tick, 1000);
    

    以上实例通过 setInterval() 方法,每秒钟调用一次 ReactDOM.render()。
    我们可以将要展示的部分封装起来,以下实例用一个函数来表示:

    function Clock(props) {
      return (
        <div>
          <h1>Hello, world!</h1>
          <h2>现在是 {props.date.toLocaleTimeString()}.</h2>
        </div>
      );
    }
    function tick() {
      ReactDOM.render(
        <Clock date={new Date()} />,
        document.getElementById('example')
      );
    }
    setInterval(tick, 1000);
    

    除了函数外我们还可以创建一个 React.Component 的 ES6 类,该类封装了要展示的元素,需要注意的是在 render() 方法中,需要使用 this.props 替换 props:

    class Clock extends React.Component {
      render() {
        return (
          <div>
            <h1>Hello, world!</h1>
            <h2>现在是 {this.props.date.toLocaleTimeString()}.</h2>
          </div>
        );
      }
    }
    function tick() {
      ReactDOM.render(
        <Clock date={new Date()} />,
        document.getElementById('example')
      );
    }
    setInterval(tick, 1000);
    

    数组

    var arr = [
      <h1>菜鸟教程</h1>,
      <h2>学的不仅是技术,更是梦想!</h2>,
    ];
    ReactDOM.render(
      <div>{arr}</div>,
      document.getElementById('example')
    );
    
    2.样式
    var myStyle = {
        fontSize: 100,
        color: '#FF0000'
    };
    ReactDOM.render(
        <h1 style = {myStyle}>菜鸟教程</h1>,
        document.getElementById('example')
    );
    

    相关文章

      网友评论

          本文标题:React元素渲染

          本文链接:https://www.haomeiwen.com/subject/mkgpaftx.html