(function anonymous(){
with(this) {
return _c(
"div",
{ attrs: { id: "app" } },
[
_m(0),
_v(""),
_c("p", [_v(_s(msg))]),
_v(""),
_c("comp", { on: { myclick: handler } }),
],
1
);
}
});
这段代码是vue 内部把模板编译成可执行的h函数(h函数用来生成虚拟dom的,这里指的是_c)时,编译出的代码,可以看到这里用了with关键字,也就是说这里把this也就是当前组件实例,添加到当前代码块的作用域链的顶部,这样的话你看里面 的_c和 绑定属性msg 和事件 handler 查找时通过作用域链最后 会找到this(当前组件实例)上的msg和 handler以及 _c,这样也就解释了为什么这里不需要写this
(vue初始化的过程中会把 第一级的属性和 函数挂载到当前实例上,所以this.找得时候能直接找到,vue中组件的类时继承自 vue这个类的)
13 回答12.7k 阅读
8 回答2.4k 阅读
2 回答5k 阅读✓ 已解决
7 回答1.8k 阅读
9 回答1.6k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
5 回答747 阅读
不要加this;直接@click="$Common..."