Vue3中的Refs和Ref詳情
小編同樣和大傢分享關於Vue3中的數據相應的問題,下面我們來例舉一個這樣的例子
Vue.createApp({ template: `<div>{{ nameObj.name }}</div>`, setup() { const { reactive } = Vue const nameObj = reactive({name:'lilei',age:18}) setTimeout(() => { nameObj.name = 'hanmeimei' },2000) return { nameObj } } }).mount('#root')
這個時候我們可能聯想到瞭es6
中關於解構賦值的內容,我們是不是可以將上面例子中的nameObj
通過結果解構的方式獲取內部的name
,然後直接將name
返回呢?也就是將代碼寫成這樣
Vue.createApp({ template: `<div>{{ name }}</div>`, setup() { const { reactive,toRefs } = Vue const nameObj = reactive({name:'lilei',age:18}) let { name } = nameObj setTimeout(() => { name.value = 'hanmeimei' },2000) return { name } } }).mount('#root')
在實際運行中,我們發現,頁面上的內容並沒有變成hanmeimei
,這個時候,我們需要引入Vue3
中的另外一個內容,我們應該把代碼修改成這樣,才能實現數據和頁面的響應式
Vue.createApp({ template: `<div>{{ name }}</div>`, setup() { const { reactive,toRefs } = Vue const nameObj = reactive({name:'lilei',age:18}) let { name } = toRefs(nameObj) setTimeout(() => { name.value = 'hanmeimei' },2000) return { name } } }).mount('#root')
同樣,和toRefs
很類似的還有toRef
,代碼實例是這樣的
Vue.createApp({ template: `<div>{{ age }}</div>`, setup() { const { reactive,toRef } = Vue const nameObj = reactive({name:'lilei'}) let age = toRef(nameObj,'age') setTimeout(() => { age.value = 'hanmeimei' },2000) return { age } } }).mount('#root')
到此這篇關於Vue3中的Refs和Ref詳情的文章就介紹到這瞭,更多相關Vue3中的Refs和Ref內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Vue中ref、reactive、toRef、toRefs、$refs的基本用法總結
- Vue3如何理解ref toRef和toRefs的區別
- vue3.0組合式api的使用小結
- setup+ref+reactive實現vue3響應式功能
- Vue3.0中Ref與Reactive的區別示例詳析