初始化state
export function initState (vm: Component) {
vm._watchers = []
// 获取当前实例的配置项
const opts = vm.$options
// 当前实例的配置项存在props(如果有自定义的props),则初始化props,比如:props:{type: String,default: ''}
if (opts.props) initProps(vm, opts.props)
// 当前实例的配置项存在methods,则初始化methods
if (opts.methods) initMethods(vm, opts.methods)
// 当前实例的配置项存在data,初始化data
if (opts.data) {
initData(vm)
} else {
observe(vm._data = {}, true /* asRootData */)
}
// 当前实例的配置项存在computed,则初始化computed
if (opts.computed) initComputed(vm, opts.computed)
// 当前实例的配置项存在watch,并且不是原生的watch,则初始化watch
if (opts.watch && opts.watch !== nativeWatch) {
initWatch(vm, opts.watch)
}
}
data的定义,组件的定义只接受 function
prop的定义,可以是数组或对象,用于接收来自父组件的数据
computed的定义,计算属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算
methods的定义
Last updated
Was this helpful?