您好,登錄后才能下訂單哦!
本篇內容主要講解“Vue3中ref與toRef的區別是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Vue3中ref與toRef的區別是什么”吧!
如果利用ref將某一個對象中的某一個屬性值變成響應式數據
我們修改響應式數據是不會影響原始數據的;
同時視圖會跟新。
ref就是復制 復制是不會影響原始數據的
<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} //將對象中的某一個屬性 //變成響應式數據 //而不是將對象變成響應式數據 let stateObj=ref(obj.name) function func1(){ stateObj.value="張三變成李四"; //原始數據沒有發生改變 原始數據obj {name: "張三", age: 22} console.log("原始數據obj",obj) //響應式數據發生改變了 /** 響應式stateObj RefImpl { _rawValue: "張三變成李四", _shallow: false, __v_isRef: true, _value: "張三變成李四" } **/ //變成了一個ref的對象 console.log("響應式stateObj",stateObj) } return {stateObj,func1} }, } </script>
如果利用toRef將某一個對象中的屬性變成了響應式的數據
我們修改響應式的數據是會影響原始數據的
如果數據是通過toRef創建的,修改值后,數據不會觸發視圖
toRef是引用;它引用的是以前那個對象中的屬性
所以你修改后,會影響到原始數據終中的值
<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變成響應式數據 //而不是將對象變成響應式數據 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>
ref復制, 修改響應式數據,不會影響以前的數據,界面會更改。
toRef引用, 修改響應式的數據,會影響以前的數據,界面不會更新。
toRef的使用場景
如果想讓響應式數據和原始數據關聯起來。
并且更新響應式數據后,不想視圖更新;那么就可以使用toRef
ref和toRef的區別
(1). ref本質是拷貝,修改響應式數據不會影響原始數據;toRef的本質是引用關系,修改響應式數據會影響原始數據
(2). ref數據發生改變,界面會自動更新;toRef當數據發生改變是,界面不會自動更新
(3). toRef傳參與ref不同;toRef接收兩個參數,第一個參數是哪個對象,第二個參數是對象的哪個屬性
到此,相信大家對“Vue3中ref與toRef的區別是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。