javascript - 使用 VueJs 2 的全局数据

标签 javascript vue.js vuejs2 vue-component

我是 VueJS 的新手,对于如何使某些数据全局可用我一无所知。我想将从 API 端点、用户数据和其他一些从 API 检索到的数据保存在每个组件都可以获取这些数据的地方。
我知道我可以只用普通的 Javascript 保存它,但我想有一种方法可以用 VueJS 来做到这一点。我也许能够使用事件总线系统来获取数据,但我不知道如何根据我的需要实现该系统。

如果有人能帮助我,我将不胜感激。

最佳答案

制作一个全局数据对象

const shared = {
    api: "http://localhost/myApi",
    mySharedMethod(){
        //do shared stuff
    }
}

如果您需要在您的 Vue 上公开它,您可以。

new Vue({
    data:{
        shared
    }
})

如果你不这样做,你仍然可以在你的 Vues 或组件中访问它,如果你已经导入它或者它们是在同一页面上定义的。

就这么简单。如果需要,您可以将共享作为属性传递,或者全局访问它。

当您刚刚开始时,没有真正需要变得复杂。 Vuex 经常被推荐,但对于小项目来说也常常有点矫枉过正。如果以后您发现需要它,添加它并不难。它也确实用于状态管理,听起来您只是真的想要访问一些全局数据。

如果你想花哨一点,就把它做成一个插件。

const shared = {
  message: "my global message"
}

shared.install = function(){
  Object.defineProperty(Vue.prototype, '$myGlobalStuff', {
    get () { return shared }
  })
}

Vue.use(shared);

Vue.component("my-fancy-component",{
  template: "<div>My Fancy Stuff: {{$myGlobalStuff.message}}</div>"
})

new Vue({
  el: "#app"
})

现在,您创建的每个 Vue 和每个组件都可以访问它。这是一个 example .

关于javascript - 使用 VueJs 2 的全局数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43193409/

相关文章:

javascript - Vue中的方法在点击时运行两次

javascript - 在Vuejs中动态切换flex大小?

javascript - vue js Prop 重置计时器

javascript - 构建可访问数据库的跨平台应用程序

javascript - 如何使用 php 隐藏 api key ?

javascript - wordpress 将数据添加到表中并生成新行

javascript - HTML5 中是否可以有多个 data-{name} 属性?

javascript - 在 Vue 2 中更改时传递范围输入值

javascript - 带有 "OR"语句的动态 img src URL 在 NUXT 组件中无法正常工作

javascript - v-for 取决于标签