javascript - 使用 CLI 模板时 Vue.js 中的全局变量

标签 javascript html vue.js vuejs2 command-line-interface

我需要声明一个全局变量,该变量可以被我的 Vue.js 应用程序中的所有组件访问。所有组件都应该能够更改其值。我正在使用 CLI 模板。 有什么建议吗?

谢谢 迪亚·埃丁·阿纳布塔维

最佳答案

一般来说,在 vue 中,不可能/不建议直接更改父作用域中的属性。通信的方式是将 props 传递给子组件并将事件(可能带有值)发送给父组件(请参阅 Passing Data to Child Components with PropsSending Messages to Parents with Events )。

如果您想要轻松访问全局状态,一种简洁的方法是使用 State Management 中描述的“存储”。 vue 指南章节:

var store = {
  state: {
    message: 'Hello!'
  },
  setMessageAction (newValue) {
    this.state.message = newValue
  },
  clearMessageAction () {
    this.state.message = ''
  }
}

...

var vm = new Vue({
  ...
  data: {
    sharedState: store.state
  }
  ...
})

然后您可以使用 this.$root.$data.sharedState 访问全局状态,例如使用 this.$root.$data.sharedState.message读取消息或使用 store.setMessageAction() 对其进行修改(假设您正在导入 store 符号)。

也就是说,此时,使用 vuex 会为您提供更好的服务。 ,集中式状态管理的官方解决方案,更简单、更干净、更不易出错。

关于javascript - 使用 CLI 模板时 Vue.js 中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49937761/

相关文章:

javascript - 为什么 Android 上背景图像(动画)的快速更改如此缓慢

html - Mailto 链接在使用 cordova 的 ios 5 中不起作用

javascript - Bootstrap 模态溢出。如何纠正? (定心)

javascript - 如何获取 <ol> 中的列表编号以匹配

Vue.js - 动态组件和事件

javascript - 将对象传递并验证到 Vue 2 组件

javascript - 如何用鼠标在 Canvas 上绘制箭头

javascript - 内联 Javascript 会减少延迟的可能性吗?

javascript - 函数总是产生相同的数字

javascript - v 槽如何工作?