【问题标题】:How to access Vue.js data across multiple js files如何跨多个 js 文件访问 Vue.js 数据
【发布时间】:2015-07-29 12:51:23
【问题描述】:

我的应用程序中需要两个 js 文件。第一个(app.js)是所有页面/视图都会使用的通用 js 文件。第二个(page1.js)是一个页面/视图特定的 js 文件。

我在 app.js 中实例化了一个新的 Vue 实例,如下所示:

new Vue({
  el : '#app',
  data: {
    balance: 0
  },
  ready: function() {

  },
  methods : {

  },
})

接下来,在 page1.js 文件中,我像这样实例化另一个 Vue 实例:

new Vue({
  el : '#headerSection',
  data: {

  },
  ready: function() {
    console.log(this.balance)
  },
  methods : {

  },
})

但是,当我尝试访问 balance 数据对象时,我收到未定义的错误。

在 html 中,我需要在 page1.js

之前的 app.js 文件

我怀疑我的 Vue 实例的第二个实例覆盖了第一个实例。

如何将两个 js 文件中的 Vue 元素分开?

【问题讨论】:

  • 这可能会解决您的问题:stackoverflow.com/questions/32752527/…
  • 你需要一个对你的 app.js vue 对象的引用。你可以像这样创建一个全局命名空间: (function(){ window.App = {}; })();然后做 App.FirstVue = new Vue 你可以像这样 App.FirstVue.data.balance;

标签: vue.js


【解决方案1】:

您可能希望使用 Vue 组件系统而不是多个独立的 View Model:

http://vuejs.org/guide/index.html#Components

这允许您创建可以很容易地相互交互的视图模型的层次结构。您可以将它们的 javascript 放在多个文件中,没有任何问题。

在您的特定情况下,您正在创建两个单独的视图模型,它们在同一个 DOM 中重叠,但彼此不相关。第一个将编译它下面的所有 DOM,而第二个将没有效果(或者至少看起来是这样)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 2013-09-06
    • 1970-01-01
    相关资源
    最近更新 更多