类型: Object | Function
javascript
限制: 组件的定义只接收function
html
详细:vue
Vue实例的数据对象.Vue将会递归将data的property转换为getter/swetter,从而让data的property可以响应数据变化.对象必须是纯粹的对象(含有零个或多个key/value对) 浏览器API建立的原生对象, 原型上的property会被忽略.大概来讲,data应该只能是数据- 不推荐观察拥有状态行为的对象.java
一旦观察过,你就没法在根数据对象上添加响应式property.所以推荐在建立实例以前,就声明全部的根级响应式property.react
建立实例以后,能够经过 vm.$data
访问原始数据对象. Vue实例也代理了data对象上全部的property,所以访问vm.a
等价于访问vm.$data.a
数组
以_或 data._property`的方式访问这些property.浏览器
当一个组件被定义,ata
必须声明为返回一个初始数据对象的函数,由于组件可能被用来建立多个实例.若是data
仍然是一个纯粹的对象,则全部的实例将共享引用同一个数据对象! 经过提供data
函数, 每次建立一个新实例后, 咱们可以调用data
函数,从而返回初始数据的一个全新副本数据对象.缓存
若是须要,能够经过将vm.$data
传入JSON.parse(JSON.stringify(...))
获得深拷贝的原始数据对象.ide
示例函数
var data = {
a: 1
};
//直接建立一个实例
var vm = new Vue({
data: data
})
vm.a // =>1
vm.$data === data;//=>true
//Vue.extend()中 data必须是函数
var Component = Vue.extended({
data() {
return {
a: 1
}
},
})
复制代码
Array<string> | Object
type
: 能够是下列原生构造函数中的一种:String Number Boolean Array Object Date Function Symbol
任何自定义构造函数 或上述内容组成的数组.会检查一个prop是不是给定的
类型,不然抛出警告.
defalut: any
为该prop指定一个默认值.若是改prop没有被传入,则换作用这个值.对象或数组的默认值必须从一个工厂函数返回
required : Boolean
定义该prop是不是必填项.在非生产环境中,若是这个值为truthy且该prop没有被传入的,则一个控制台警告将会被抛出.
validator : Function
自定义验证函数会将该prop值做为惟一参数带入.在非生产环境下,若是该函数返回一个falsy的值(验证失败),一个控制台警告将会被抛出.
示例
//简单语法
Vue.component(`props-demo-simple`,{
props:['size','myMessage' ]
})
//对象语法,提供验证
Vue.component('props-demo-advanced',{
props:{
//检测类型
height: Number
//检测类型+其余验证
age:{
type: Number,
default : 0,
required : true,
validator : function (value){
return value =>0
}
}
}
})
复制代码
{ [ key: string ] : any }
new
建立的实例中.var Comp =Vue.extend({
props:[ ' msg ' ],
template: ' <div> {{ msg }} </div> '
})
var vm = new Comp( {
propsData :{
msg : ' hello '
}
})
复制代码
类型 : { [ key : string ] : Function | { get : Function, set : Function }  }
详细 :
this
不会指向这个组件的实例, 不过你仍然能够将其实例在uowei函数的第一个参数来访问.computed: {
aDouble : vm => vm.a * 2
}
复制代码
*计算属性的结果会被缓存,除非依赖的响应式property变化才会从新计算. 注意,若是某个依赖(好比响应式property)在该实例范畴以外,则计算属性不会被更新的
var vm = new Vue({
data: {
a: 1
},
computed: {
//仅读取
aDouble: function() {
return this.a * 2
},
// 读取和设置
aPlus: {
get: function() {
return this.a + 1
},
set: function() {
this.a = v - 1
}
}
},
})
vm.aPlus //2
vm.aPlus //3
vm.a //2
vm.avm.aDouble //2
复制代码
第一次写博客 md也不是很熟练 就想试着写一下 若有错误望指出 谢谢0.0