美文网首页
react演示最小更新

react演示最小更新

作者: 苍老师的眼泪 | 来源:发表于2022-07-18 04:25 被阅读0次

React组件没有修改的概念,当一个组件的内容更新时,是 render 函数直接创建一个新的组件替换旧的组件,
然后新的组件树与旧的组件树做比对,找出两颗树中存在差异的那一部分,最后只更新dom的那一部分就可以了
在Chrome浏览器中,更新的那一部分会有紫色闪烁,其他没有变化的部分不会闪烁:


sticky.gif
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="react.development.js"></script>
    <script src="react-dom.development.js"></script>
</head>
<body>
    
    <div id="root" class="a">
        
    </div>

    <button onclick="f()">交换位置</button>

    <script>
        
        const baidu = React.createElement('li', {key: 'baidu'}, React.createElement('a', { href: "https://www.baidu.com/"}, ['百度一下']))
        const google = React.createElement('li', {key: 'google'}, React.createElement('a', { href: "https://www.google.com/"}, ['谷歌']))

        
        let links = [baidu, google]
        
        let title = React.createElement('h2', {}, '演示最小更新:')

        let content = React.createElement('div', {}, title, ...links)


        ReactDOM.render(content, document.getElementById('root'))


        function f() {
            [links[0], links[1]] = [links[1], links[0]]

            let content = React.createElement('div', {}, title, ...links)

            ReactDOM.render(content, document.getElementById('root'))
        }

    </script>

</body>
</html>

相关文章

网友评论

      本文标题:react演示最小更新

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