欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3中ref與toRef的區(qū)別淺析

 更新時間:2021年06月23日 09:07:10   作者:我的div丟了腫么辦  
我們知道ref可以用于創(chuàng)建一個響應式數(shù)據(jù),而toRef也可以創(chuàng)建一個響應式數(shù)據(jù),這篇文章主要給大家介紹了關于Vue3中ref與toRef區(qū)別的相關資料,需要的朋友可以參考下

1. ref是復制,視圖會更新

如果利用ref將某一個對象中的某一個屬性值變成響應式數(shù)據(jù)

我們修改響應式數(shù)據(jù)是不會影響原始數(shù)據(jù)的;

同時視圖會跟新。

ref就是復制 復制是不會影響原始數(shù)據(jù)的

<template>
 <div>
    <div>
      <div>{{stateObj}}</div>
       <button @click="func1">按鈕</button>
    </div>
 </div>
</template>
<script>
import {ref} from 'vue'
export default {
  name: 'App',
  setup(){
    let obj={name:"張三",age:22}
    
    //將對象中的某一個屬性
    //變成響應式數(shù)據(jù)
    //而不是將對象變成響應式數(shù)據(jù)
    let stateObj=ref(obj.name)
    function func1(){
      stateObj.value="張三變成李四";
      //原始數(shù)據(jù)沒有發(fā)生改變 原始數(shù)據(jù)obj {name: "張三", age: 22}
      console.log("原始數(shù)據(jù)obj",obj)

      //響應式數(shù)據(jù)發(fā)生改變了  
      /**
      響應式stateObj RefImpl {
          _rawValue: "張三變成李四", _shallow: false,
          __v_isRef: true, _value: "張三變成李四"
      }
      **/
      //變成了一個ref的對象
      console.log("響應式stateObj",stateObj)

    }

    return {stateObj,func1}
},
}
</script>

2.toRef是引用,視圖不跟新

如果利用toRef將某一個對象中的屬性變成了響應式的數(shù)據(jù)

我們修改響應式的數(shù)據(jù)是會影響原始數(shù)據(jù)的

如果數(shù)據(jù)是通過toRef創(chuàng)建的,修改值后,數(shù)據(jù)不會觸發(fā)視圖

toRef是引用;它引用的是以前那個對象中的屬性

所以你修改后,會影響到原始數(shù)據(jù)終中的值

<template>
 <div>
    <div>
      <div>{{state}}</div>
       <button @click="func1">按鈕</button>
    </div>
 </div>
</template>
<script>
import {toRef} from 'vue'
export default {
  name: 'App',
  setup(){
    let obj={name:"張三",age:22}
    //將對象中的某一個屬性name變成響應式數(shù)據(jù)
    //而不是將對象變成響應式數(shù)據(jù)
    let state=toRef(obj, 'name');
    console.log('toRef',state)
    function func1(){
      state.value="我是李四";
      console.log('obj',obj)
      console.log('state',state)
    }
    return {state,func1}
  },
}
</script>

3.結論

ref復制, 修改響應式數(shù)據(jù),不會影響以前的數(shù)據(jù),界面會更改。

toRef引用, 修改響應式的數(shù)據(jù),會影響以前的數(shù)據(jù),界面不會更新。

toRef的使用場景

如果想讓響應式數(shù)據(jù)和原始數(shù)據(jù)關聯(lián)起來。

并且更新響應式數(shù)據(jù)后,不想視圖更新;那么就可以使用toRef

小結:

ref和toRef的區(qū)別

(1). ref本質是拷貝,修改響應式數(shù)據(jù)不會影響原始數(shù)據(jù);toRef的本質是引用關系,修改響應式數(shù)據(jù)會影響原始數(shù)據(jù)

(2). ref數(shù)據(jù)發(fā)生改變,界面會自動更新;toRef當數(shù)據(jù)發(fā)生改變是,界面不會自動更新

(3). toRef傳參與ref不同;toRef接收兩個參數(shù),第一個參數(shù)是哪個對象,第二個參數(shù)是對象的哪個屬性

總結

到此這篇關于Vue3中ref與toRef區(qū)別的文章就介紹到這了,更多相關Vue3 ref與toRef區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vite3結合Svelte3使用@import導入scss樣式

    Vite3結合Svelte3使用@import導入scss樣式

    這篇文章主要為大家介紹了Vite3結合Svelte3使用@import導入scss樣式實現(xiàn)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • vue.js路由mode配置之去掉url上默認的#方法

    vue.js路由mode配置之去掉url上默認的#方法

    今天小編就為大家分享一篇vue.js路由mode配置之去掉url上默認的#方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 基于Vue2實現(xiàn)動態(tài)折扣表格

    基于Vue2實現(xiàn)動態(tài)折扣表格

    這篇文章主要為大家詳細介紹了如何基于Vue2實現(xiàn)動態(tài)折扣表格,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-01-01
  • 一文帶你搞懂Vue3中的各種ref的使用

    一文帶你搞懂Vue3中的各種ref的使用

    在?Vue3?中,有許多與響應式相關的函數(shù),例如?toRef、toRefs、isRef、unref?等等,本文將詳細介紹這些函數(shù)的用法,讓我們在實際開發(fā)中知道應該使用哪些?API?并能夠熟練地回答面試官的相關問題
    2023-08-08
  • vue實現(xiàn)跳轉接口push 轉場動畫示例

    vue實現(xiàn)跳轉接口push 轉場動畫示例

    今天小編就為大家分享一篇vue實現(xiàn)跳轉接口push 轉場動畫示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue使用fabric.js實現(xiàn)局部截圖與大圖預覽功能

    Vue使用fabric.js實現(xiàn)局部截圖與大圖預覽功能

    這篇文章主要為大家詳細介紹了Vue如何使用fabric.js實現(xiàn)局部截圖與el-image-viewer大圖預覽功能,文中的示例代碼講解詳細,感興趣的可以了解下
    2024-02-02
  • vue實現(xiàn)todolist基本功能以及數(shù)據(jù)存儲功能實例詳解

    vue實現(xiàn)todolist基本功能以及數(shù)據(jù)存儲功能實例詳解

    本文通過實例代碼給大家介紹了vue實現(xiàn)todolist基本功能以及數(shù)據(jù)存儲功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • 詳解Vue如何手寫一個虛擬列表

    詳解Vue如何手寫一個虛擬列表

    虛擬列表是一種優(yōu)化長列表渲染的技術,它可以在保持流暢性的同時,渲染大量的數(shù)據(jù),本文主要介紹了如何使用vue手寫一個虛擬列表,感興趣的可以了解下
    2024-04-04
  • Vue.js的Mixins使用方式

    Vue.js的Mixins使用方式

    Vue.js的Mixins功能允許封裝可復用的組件選項,實現(xiàn)代碼復用和模塊化,Mixins可以包含數(shù)據(jù)、方法、生命周期鉤子等組件選項,使用時,Mixins中的選項會被混入組件中,優(yōu)先級低于組件自身選項,優(yōu)點包括代碼復用、高靈活性和簡單易用
    2024-09-09
  • Vue3項目中引入ElementUI并使用的示例詳解

    Vue3項目中引入ElementUI并使用的示例詳解

    ElementUI是一個強大的PC端UI組件框架,它不依賴于vue,但是卻是當前和vue配合做項目開發(fā)的一個比較好的ui框架,本文主要介紹了如何在vue3中引入使用ElementUI,需要的可以參考一下
    2023-06-06

最新評論