去年面试的时候遇到的一个问题,面试官应该就是想知道你是否有了解过源码,那我们来看一下源码喽:
function initState (vm) {
vm._watchers = [];
var opts = vm.$options;
if (opts.props) { initProps(vm, opts.props); }
if (opts.methods) { initMethods(vm, opts.methods); }
if (opts.data) {
initData(vm);
} else {
observe(vm._data = {}, true /* asRootData */);
}
if (opts.computed) { initComputed(vm, opts.computed); }
if (opts.watch && opts.watch !== nativeWatch) {
initWatch(vm, opts.watch);
}
}
以上为vue的部分源码,可以看出判断顺序:
props > methods > data > computed > watch