最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React、Vue中key的作用詳解 (key的內(nèi)部原理解析)

 更新時(shí)間:2023年10月31日 09:07:44   作者:夕苜19  
key是虛擬DOM對象的標(biāo)識,當(dāng)狀態(tài)中的數(shù)據(jù)發(fā)生變化時(shí),Vue會根據(jù)[新數(shù)據(jù)]生成[新的虛擬DOM],本文給大家介紹React、Vue中key的作用詳解 (key的內(nèi)部原理解析),感興趣的朋友一起看看吧

1. 虛擬DOM中key的作用:

   key是虛擬DOM對象的標(biāo)識,當(dāng)狀態(tài)中的數(shù)據(jù)發(fā)生變化時(shí),Vue會根據(jù)[新數(shù)據(jù)]生成[新的虛擬DOM]

   隨后Vue進(jìn)行[新虛擬DOM]與[舊虛擬DOM]的差異比較,比較規(guī)則如下:

2. 對比規(guī)則:

  (1).舊虛擬DOM中找到了與新虛擬DOM相同的key:

    ①.若虛擬DOM中內(nèi)容沒變,直接使用之前的真實(shí)DOM!

    ②.若虛擬DOM中內(nèi)容變了,則生成新的真實(shí)DOM,隨后替換掉頁面中之前的真實(shí)DOM。

  (2).舊虛擬DOM中未找到與新虛擬DOM相同的key創(chuàng)建新的真實(shí)DOM,隨后渲染到到頁面。

3. 用index作為key可能會引發(fā)的問題:

  (1).若對數(shù)據(jù)進(jìn)行: 逆序添加、逆序刪除等破壞順序操作:

         會產(chǎn)生沒有必要的真實(shí)DOM更新 ==> 界面效果沒問題,但效率低

  (2).如果結(jié)構(gòu)中還包含輸入類的DOM:

         會產(chǎn)生錯(cuò)誤DOM更新 ==> 界面有問題

4. 開發(fā)中如何選擇key?

  (1).最好使用每條數(shù)據(jù)的唯一標(biāo)識作為key,比如id、手機(jī)號、身份證號、學(xué)號等唯一值。

  (2).如果不存在對數(shù)據(jù)的逆序添加、逆序刪除等破壞順序操作,僅用于渲染列表用于展示,

      使用index作為key是沒有問題的。

<body>
    <div id="root">
        <h2>人員列表</h2>
        <button @click="add_liu">點(diǎn)擊添加一個(gè)老劉</button>
        <ul>
            <!-- <li v-for='p in persons' :key="p.id"> -->
            <li v-for='p in persons' :key="index">
                {{p.name}} - {{p.age}}  <input type="text">
            </li>
        </ul>
    </div>
</body>
<script>
    let vm = new Vue({
        el: "#root",
        data:{
            persons: [
                {
                    id: '001',
                    name: "張三",
                    age: 18,
                },
                {
                    id: '002',
                    name: "李四",
                    age: 19,
                },
                {
                    id: '003',
                    name: "王五",
                    age: 20,
                }
            ],
        },
        methods: {
            add_liu: function(){
                const liu = 
                {
                    id: '004',
                    name: "老劉",
                    age: 30,
                }
                this.persons.unshift(liu)
            }
        },
    })
</script>

到此這篇關(guān)于React、Vue中key的作用詳解 (key的內(nèi)部原理解析)的文章就介紹到這了,更多相關(guān)react vue key作用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • react 應(yīng)用多入口配置及實(shí)踐總結(jié)

    react 應(yīng)用多入口配置及實(shí)踐總結(jié)

    這篇文章主要介紹了react 應(yīng)用多入口配置及實(shí)踐總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • react axios配置代理(proxy),如何解決本地開發(fā)時(shí)的跨域問題

    react axios配置代理(proxy),如何解決本地開發(fā)時(shí)的跨域問題

    這篇文章主要介紹了react axios配置代理(proxy),如何解決本地開發(fā)時(shí)的跨域問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • React-redux實(shí)現(xiàn)小案例(todolist)的過程

    React-redux實(shí)現(xiàn)小案例(todolist)的過程

    這篇文章主要為大家詳細(xì)介紹了React-redux實(shí)現(xiàn)小案例(todolist)的過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 如何在?React?中重拾原生?HTML?屬性

    如何在?React?中重拾原生?HTML?屬性

    本文將從基礎(chǔ)到深入,拆解為什么在 React 組件中大量使用原生屬性(尤其是 data-*)是一種更專業(yè)、更可維護(hù)、更高性能的工程實(shí)踐,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • react MPA 多頁配置詳解

    react MPA 多頁配置詳解

    這篇文章主要介紹了react MPA 多頁配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • react實(shí)現(xiàn)keep-alive功能

    react實(shí)現(xiàn)keep-alive功能

    React無內(nèi)置keep-alive,可通過父組件狀態(tài)緩存、React Router自定義緩存、第三方庫(如react-keep-alive)實(shí)現(xiàn),接下來通過本文給大家詳細(xì)介紹react實(shí)現(xiàn)keep-alive功能的詳細(xì)過程,感興趣的朋友一起看看吧
    2025-08-08
  • 淺談從React渲染流程分析Diff算法

    淺談從React渲染流程分析Diff算法

    這篇文章主要介紹了淺談從React渲染流程分析Diff算法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • React+Vite中利用Fetch將CSV數(shù)據(jù)轉(zhuǎn)成JSON字符串

    React+Vite中利用Fetch將CSV數(shù)據(jù)轉(zhuǎn)成JSON字符串

    在一些小型項(xiàng)目中,前端可能需要直接處理 CSV 文件數(shù)據(jù),將其轉(zhuǎn)換為 JSON 字符串后再進(jìn)行邏輯操作和展示,本文將會介紹兩種方法,需要的朋友可以參考下
    2025-12-12
  • react事件回調(diào)中使用防抖失敗的常見錯(cuò)誤和正確使用方式

    react事件回調(diào)中使用防抖失敗的常見錯(cuò)誤和正確使用方式

    這篇文章主要介紹了react事件回調(diào)中使用防抖失敗的常見錯(cuò)誤和正確使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • React.Js添加與刪除onScroll事件的方法詳解

    React.Js添加與刪除onScroll事件的方法詳解

    這篇文章主要給大家介紹了關(guān)于React.Js添加與刪除onScroll事件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11

最新評論

闸北区| 平阳县| 资溪县| 临沭县| 浮梁县| 浦东新区| 巴林左旗| 台南市| 宜良县| 孟村| 定陶县| 兴安盟| 巴林左旗| 金湖县| 固始县| 夹江县| 开平市| 晋江市| 普兰店市| 乌海市| 泸西县| 永顺县| 宁南县| 监利县| 辽宁省| 西乡县| 区。| 江城| 秀山| 石嘴山市| 鄂州市| 无极县| 永川市| 周口市| 长武县| 瑞金市| 樟树市| 红原县| 浏阳市| 万宁市| 南和县|