下面是一个vue组建的代码片段截图
如图所示,在生命周期钩子中使用 this.$store等this对象信息
各位大大可以直接上教程地址,也可以直接指点
不要对mounted使用箭头函数,代码如下:
mounted() {
this.$store.commit("welcome_up");
console.log("791", this.$store);
// 直接把this.$store当参数传进去不行吗?
var created_obj = new created(this.$store);
console.log(created_obj);
}
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
箭头函数会造成作用于穿透,此时Vue里面的
this
指向的并非Vue实例,而是export default
这整个对象。解决方法:
使用ES5语法:
使用ES6语法:
最后说一句,箭头函数并不是万能函数,它虽然简化了很多操作,但是同时也带来了一些不便:比如使用箭头函数锁带来的作用域穿透和变量数组未定义,在某些情景下会让不明就里的人掉进语法的坑。
在独立的JS中使用,有几种方法:
第一,如果想要
new created()
的对象中this
和当前this
一致,可以使用call()
或者bind()
方法进行上下文绑定第二,如果只是临时使用
this.$store
这一个变量,可以通过new create(this.$store)
构造方法初始化一个内部值指向this.$store
第三,也可以通过实例化之后,向实例中添加数据;当然需要在
create()
类里添加公共属性用于接收this.$store
第四,同方法二,但是可以构造方法传入整个
this