1、介绍:
在 Vue.js 中,data 选项是一个非常重要且核心的概念。data 是一个对象或工厂函数,用于存储 Vue 实例或组件的可响应状态。这意味着任何在 data 中声明的属性都将被 Vue 的响应系统所追踪,当这些属性的值发生改变时,依赖于这些属性的视图部分将会自动更新。也就说data可以为Vue存储动态数据,当data数据发生变化时,实例或组件将会重新渲染,展现出更新后的data数据。
2、实例:
<!DOCTYPE html>
<html lang="en">
<head>
//option对象中的data
<meta charset="UTF-8">
<title>Title</title>
<script src="./jsdocument/vue.js"></script>
</head>
<body>
<div id="app"></div>
<script>
new Vue({
data:{
message:"Hello Vue!"
},
template:'<h1>{{message}}</h1>'
}).$mount("#app")
</script>
</body>
</html>
对上面代码的解释:
- data是vue的对象,并且这个对象必须是存粹的对象。也就是说这个对象的组织形式必须是
key:value
形式。 {{message}}
是vue的插值语法,可以从data中提炼数据message,然后放到{{message}}对应位置- data可以是对象也可以是函数:
如果是对象那么可以为如下情况:
//情况一:
data:{
message:"hello vue!"
}
//取值
{{message}}
//情况二:
data:{
user1:{
name:'老杜',
age:18}
}
//取值:
{{user1.name}}
{{user1.age}}
//情况三“
data:{color['红色','黄色','蓝色']}
//取值:
{{color[0]}}
如果是函数,那么是下面情况:
Vue.component('my-component', {
template: '<div>{{ message }}</div>',
data: function() {
return {
message: 'Hello from component'
};
}
});
-
执行过程:vue对template模板进行解析,如果遇到插值语法{{}},那么会从中data中读取对应数据然后插入对应位置,最后生成html代码
-
注意:
私有性:当 data 是一个函数时,每个组件实例都有独立的 data 副本,这保证了组件实例间的隔离。
初始化:data 中的属性应该在组件初始化时就存在,以便 Vue 能够追踪它们。
可响应性:在 data 中定义的属性是响应式的,这意味着当它们改变时,Vue 会检测到变化并触发视图的更新。
访问方式:在组件的模板和方法中,你可以通过 this 关键字来访问 data 中的属性,例如 this.message。