首页 文章

Vue实例上可用的非活动数据

提问于
浏览
2

我想在vue中存储对象,它应该可用于整个实例而不是被动的 . 通常(有反应)我会像这样使用'数据':

new Vue({
  data: myObject
})

但事实上myObject不需要改变所以我认为让它反应是坏的 . 有没有办法做到这一点?

2 回答

  • 1

    您可以使用Vue实例属性 .

    您可能希望在许多组件中使用数据/实用程序,但您不希望污染全局范围 . 在这些情况下,您可以通过在原型上定义它们使它们可用于每个Vue实例:

    Vue.prototype.$appName = 'My App'
    

    现在,即使在创建之前,所有Vue实例都可以使用$ appName . 如果我们运行:

    new Vue({
      beforeCreate: function () {
        console.log(this.$appName)
      }
    })
    

    参考:Link

    Or

    您可以将Vuex状态用于该数据属性,并仅在您想要更改值时定义突变 .

  • 2

    如果您声明并且没有提供任何突变以使其保持只读状态 .

    例如...

    const store = new Vuex.Store({
      state: myObject
    })
    
    // assuming you've added Vue.use(Vuex) if using a module system
    new Vue({
      // el, data, etc
      store
    })
    

    然后您的Vue实例或组件可以访问

    this.$store.state.somePropertyOfMyObject
    

相关问题