vue.js - Vue/Nuxt - 安装 : () => Vs mounted: function()

标签 vue.js vuejs2 nuxt.js

为什么在 mounted 中使用 () =>function() 结果不同:

export default {
  mounted: () => {
    this.socket = 'something'
    console.log('mounted')
  },
  methods: {
    submitMessage() {
      console.log(this.socket) // undefined
    }
  }
}

使用函数():

export default {
  mounted: function() {
    this.socket = 'something'
    console.log('mounted')
  },
  methods: {
    submitMessage() {
      console.log(this.socket) // something
    }
  }
}

有什么想法吗?

最佳答案

您不应该使用箭头函数来定义生命周期钩子(Hook)、方法、...(例如 mounted: () => this.socket++)。原因是箭头函数绑定(bind)了父上下文,所以 this 将不是您期望的 Vue 实例,this.socket 将是未定义的。

关于vue.js - Vue/Nuxt - 安装 : () => Vs mounted: function(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46388873/

相关文章:

javascript - 如何隐藏/取消隐藏 vuejs 中特定组件的路由器链接按钮

javascript - 在 Vue 中绑定(bind)组件属性

vue.js - axios 在配置 vue js 中设置 header

javascript - Vue.js 组件的 vm.$el 是常量还是可以重新赋值?

vue.js - 如何在 Vue.js 中使用 CKEditor 5 CodeSnippet 插件?

javascript - 元素 UI 选择不适用于对象作为值

vue.js - Vuejs Prop 未定义

vue.js - WebStorm 模块未安装 webpack 报错

testing - 如何在 Nuxt3 中使用 vitest 中的路径?

javascript - 如何将 css-loader 和 stylus-loader 添加到 nuxt.config.js 中?