我如何在vue mixins中结合两个功能?

Vue.mixin({
    methods: {
      functionOne: () => {
        console.log(1)
      }
      functionTwo: () => {
        this.functionOne()
      }
    },
    mounted () {
      this.functionTwo()
    }
})


// expected:控制台
1个

//实际:控制台
无法读取未定义的属性“ functionOne”

最佳答案

如果将ES6箭头功能与Vue方法一起使用,则会更改this的上下文。如果您这样说:

Vue.mixin({
  methods: {
    functionOne () {
      console.log(1)
    },
    functionTwo: function () {
      this.functionOne()
    }
  },
  mounted () {
    this.functionTwo()
  }
})


它完美地工作。

functionOne ()functionTwo: function ()语法均有效,这就是为什么它们都出现在示例中的原因。)

09-18 13:27