欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue引用類型data

江奕云1年前9瀏覽0評論

Vue的data是一個對象,它是Vue組件的響應式數據源。在Vue組件中,我們可以在data對象中聲明任何屬性,這些屬性可以通過this訪問,也可以在模板中用Mustache語法(雙大括號)渲染出來。但是要注意,如果我們想在模板中渲染出data中的屬性值,該屬性必須事先聲明在data對象中。

var vm = new Vue({
data: {
message: 'Hello Vue!'
}
})
console.log(vm.message) // 輸出 'Hello Vue!'

當data對象中的某個屬性的值發生變化時,Vue會立即更新視圖以反映這些變化。一個重要的事情是,只有在實例被創建時data中存在的屬性才是響應式的。

var vm = new Vue({
data: {
message: 'Hello'
}
})
vm.message = 'Hello Vue!'
console.log(vm.message) // 輸出 'Hello Vue!'

注意,如果你嘗試更改一個不存在于data中的屬性,這個新值不會觸發視圖的重新渲染。

// 示例1:
// 'msg'不會觸發視圖更新
var vm = new Vue({
data: {
message: 'Hello'
}
})
vm.msg = 'world'
// 示例2:
// 數組中的值變化不會觸發視圖更新
var vm = new Vue({
data: {
items: ['a', 'b', 'c']
}
})
vm.items.push('d')
// 示例3:
// 對象中的值變化不會觸發視圖更新
var vm = new Vue({
data: {
obj: {
foo: 'bar'
}
}
})
vm.obj.baz = 'qux'

如上面的示例,'msg'屬性、數組和對象的變化都不會觸發視圖的重新渲染。這是因為它們并沒有在實例創建時被聲明在data中,Vue就沒有監聽它們。如果我們確實需要在運行時動態添加一個響應式屬性,可以使用Vue.set方法將這個屬性變成響應式的。

var vm = new Vue({
data: {
obj: {}
}
})
Vue.set(vm.obj, 'baz', 'qux')
// 或者
vm.$set(vm.obj, 'baz', 'qux')

如此一來,'baz'屬性的變化就可以觸發視圖的重新渲染了。

總的來說,Vue的data對象是一個非常方便的響應式數據源,在編寫組件時可以幫助我們輕松地管理組件的狀態。