亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue3中的ref,toRef,toRefs三個的作用使用小結(jié)

 更新時間:2022年11月11日 11:36:25   作者:有兩把刷子  
Vue3中ref、reactive、toRef、toRefs都是與響應式數(shù)據(jù)相關的,就此做一份筆記作為區(qū)別,本文重點給大家講解vue3中的ref,toRef,toRefs三個是干嘛的,有什么作用,感興趣的朋友跟隨小編一起看看吧

1. ref的使用

     ref 接受一個原始值,返回一個具有響應式的對象,對象有一個value屬性,其值就是所傳遞的原始值。

  ref是做的一個拷貝關系,修改對象msg的值,不會影響對象obj,視圖會發(fā)生變化。

    import { ref } from "vue";
    let obj = { name: "你好", age: 16 };
    let msg = ref(obj.name);
    console.log(msg.value); // 你好
    let arr = ref([]) // ref 可以是任何類型 也可以是對象
    function change1() {
      msg.value = "世界"; 
      //修改msg1數(shù)據(jù)的時候必須要加 .value 渲染數(shù)據(jù)的時候就不用加了
      console.log(obj, msg.value);
      // {name: "你好", age: 16} '世界' 
      // 數(shù)據(jù)此時沒改變 但是頁面的數(shù)據(jù)改變了
      
    }
    change1();
 
     return {
        obj,
        msg,
     };

 如果給dom上加ref 就是當前的dom元素

<template>
  <div class="home-new">  
      <div ref="target">
       
      </div>
  </div>
</template>
import {ref} from 'vue'
export default {
  name: "HomeNew",
  setup(p, { emit }) {
    const target = ref(null);
    // 懶加載
    console.log(target);
    return {
      target,
    };
  },
 
};

2. toRef的使用

  toRef用來給抽離響應式對象中的某一個屬性,并把該屬性包裹成ref對象,使其和原對象產(chǎn)生鏈接

 toRef是做的一種引用關系,修改msg2的值,會影響對象msg,但視圖不會發(fā)生變化

    setup(){
    	let msg = { name: 'zs', age: 16 }
        let msg2 = toRef(msg, 'name')
        console.log(msg2.value)	// zs
        function change2() {
            msg2.value = 'ww'
            console.log(msg, msg2.value) // {name: "ww", age: 16} ww
            //此時 msg.ww 數(shù)據(jù)變了 但是視圖上的是不會變的
        }
        change2()
        return { msg2,change2 }
    }

3. toRefs的使用

 toRefs用來把響應式對象轉(zhuǎn)換成普通對象,把對象中的每一個屬性,包裹成ref對象

toRefs就是toRef的升級版,只是toRefs是把響應式對象進行轉(zhuǎn)換,其余的特性和toRef無二

setup(){
    let msg = { name: 'zs', age: 16 }
    let msg3 = toRefs(msg)
    console.log(msg) // { name:ref, age:ref }  ref代指ref對象
    function change3() {
      msg3.name.value = 'zl'
      msg3.age.value = 20
      console.log(msg, msg3) // {name: "zl", age: 20} { name:ref, age:ref }
    }
    change3()
    return { msg3, change3 }
}

 請求過來的數(shù)據(jù)封裝了一下

<script>
import { reactive, toRefs } from "vue";
import { getBanner } from "@/api";
export default {
  setup() {
    return {
      ...toRefs(getBan()),
    };
  },
};
function getBan() {
  let bannerList = reactive({
    list: [],// 模板中直接 寫入 list 就可以了
  });
  getBanner().then((res) => {
    bannerList.list = res.data;
    console.log(bannerList.list);
  });
  return bannerList;
}
</script>

這樣寫模板中直接寫入 {{ list }}  就可以了 , 不用 {{ obj.list }},修改數(shù)據(jù)的時候還是 obj.list = 'aaa' 

  import { reactive, toRefs } from "vue";
  setup() {
    let obj = reactive({
      list: [],
      newS: [],
      moods: [],
    });
 
    return { ...toRefs(obj) };
  },

4.總結(jié)

ref、toRef、toRefs 都可以將某個對象中的屬性變成響應式數(shù)據(jù)

ref的本質(zhì)是拷貝,修改響應式數(shù)據(jù),不會影響到原始數(shù)據(jù),視圖會更新

toRef、toRefs的本質(zhì)是引用,修改響應式數(shù)據(jù),會影響到原始數(shù)據(jù),視圖會更新

toRef 一次僅能設置一個數(shù)據(jù),接收兩個參數(shù),第一個參數(shù)是哪個對象,第二個參數(shù)是對象的哪個屬性

toRefs接收一個對象作為參數(shù),它會遍歷對象身上的所有屬性,然后挨個調(diào)用toRef執(zhí)行

到此這篇關于vue3中的ref,toRef,toRefs三個是干嘛的,有什么作用呢。的文章就介紹到這了,更多相關vue3 ref,toRef,toRefs內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue實現(xiàn)購物車詳情頁面的方法

    Vue實現(xiàn)購物車詳情頁面的方法

    這篇文章主要介紹了Vue實戰(zhàn)之購物車詳情頁面的實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 老生常談vue3組件通信方式

    老生常談vue3組件通信方式

    這篇文章主要介紹了vue3組件通信方式,面試題經(jīng)常會問到vue3組件間的通信方式,今天就通過實例代碼給大家詳細介紹下,對vue3組件通信相關知識感興趣的朋友一起看看吧
    2022-08-08
  • Vue NextTick介紹與使用原理

    Vue NextTick介紹與使用原理

    我們對Vue中data數(shù)據(jù)的修改會導致界面對應的響應變化,而通過nextTick方法,可以在傳入nextTick的回調(diào)函數(shù)中獲取到變化后的DOM,講起來可能還是有點夢幻,下面我們直接使用nextTick體驗一下效果
    2022-08-08
  • vue?openlayers實現(xiàn)臺風軌跡示例詳解

    vue?openlayers實現(xiàn)臺風軌跡示例詳解

    這篇文章主要為大家介紹了vue?openlayers實現(xiàn)臺風軌跡示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • vue結(jié)合el-upload實現(xiàn)騰訊云視頻上傳功能

    vue結(jié)合el-upload實現(xiàn)騰訊云視頻上傳功能

    這篇文章主要介紹了vue結(jié)合el-upload實現(xiàn)騰訊云視頻上傳功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Vue高級特性概念原理詳細分析

    Vue高級特性概念原理詳細分析

    這篇文章主要介紹了Vue高級特性概念原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-03-03
  • vue自定義指令實現(xiàn)元素滑動移動端適配及邊界處理

    vue自定義指令實現(xiàn)元素滑動移動端適配及邊界處理

    這篇文章主要為大家介紹了vue自定義指令實現(xiàn)元素滑動移動端適配及邊界處理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • vue點擊當前路由高亮小案例

    vue點擊當前路由高亮小案例

    這篇文章主要為大家詳細介紹了vue點擊當前路由高亮小案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • vue上傳圖片到oss的方法示例(圖片帶有刪除功能)

    vue上傳圖片到oss的方法示例(圖片帶有刪除功能)

    這篇文章主要介紹了vue上傳圖片到oss的方法示例(圖片帶有刪除功能),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue實現(xiàn)簡單表格組件實例詳解

    vue實現(xiàn)簡單表格組件實例詳解

    vue的核心思想就是組件,什么是組件呢?按照我的理解組件就是裝配頁面的零件,vue三大核心組件 路由 狀態(tài)管理,路由控制頁面的渲染,頁面由組件組成,數(shù)據(jù)有vuex進行管理和改變。下面我會以一個簡單的案例來說
    2017-04-04

最新評論