我有一个(不可更改的)DOM struct ,如下所示:

<div id="indexVue">
  ...
  <div id="childVue">
  ...
  </div>
  ...
</div>

和两个js文件:

指数js:

var child = require('childVue');

module.exports = new Vue({
  el: '#indexVue',
  ...
});

childVue.js:

module.exports = new Vue({
  el: '#childVue',
  methods: {
    something: function(){
      // Parent data needed here ...
    },
    ...
  }
});

如图所示,我需要childVueindexVue的数据.有没有办法把它传给它?我试图将其传递给一个(v-on="click: childFunction($data)")的函数,但它只(逻辑上)从childVue返回数据属性,而不是从indexVue返回数据属性.

谷歌并没有真正起到帮助作用,因为Vue没有很好的文档记录.

真正的文件和DOM struct 更大、更复杂,但我的问题只需要这些文件.

此外,我不允许在这里使用jQuery,这将使它成为一项耗时数秒的任务.

推荐答案

潘泰利斯的回答不再正确.Vue.js删除了inherit属性.

最好的办法是pass data through properties;美元

<div id="indexVue">
  <child-vue :some-data="someData"></child-vue>
</div>

指数js:

module.exports = new Vue({
  el: '#indexVue',
  data: {
    someData: "parent's data"
  },
  components: {
    childVue: require('childVue')
  }
});

childVue.js:

module.exports = {
  template: '<div>{{someData}}</div>',
  methods: {
    something: function(){
      // you can access the parent's data
      console.log(this.someData)
    }
  },
  props: ['some-data'] // kebab case here available as camelcase in template
};

请注意childVue.js中的props属性和用于属性名称的大小写(camelCase vs kebab-case)

Vue.js相关问答推荐

为什么 Vue 在将设置脚本中的计算(computed)属性渲染到模板时找不到变量

如何在 Nuxt3 中使用 nuxtjs/auth-next 模块?

如何使用 vue 或 javascript 向服务器发送密码?

如何在 Nativescript 应用程序中调用 axios/api 调用

如何在 vuejs 自定义指令中传递动态参数

使用 vue-cli 遇到无法推断解析器错误

如何在异步功能上使用 debounce?

如何将Vue的主应用程序渲染到body元素?

Vue 3 如何获取有关 $children 的信息

如何使用 vuex 删除项目?

Vuetify 输入自动完成错误

如何在 NPM 上创建和发布 Vuejs 组件

包含 Vue 组件的 HTML 字符串的 Nuxt 渲染函数

从 vue.js 中的 store 获得的计算(computed)属性的设置器

使用 Vue 在单个文件组件中调用渲染方法

在 Vue JS 组件中使用 Laravel 路由的最佳方法是什么

如何在 Vue.js 插槽范围内传递方法

NPM:403 禁止 - PUT http://registry.npmjs.org/[package-name] - 禁止

Vue过滤器应该如何使用typescript绑定?

如何在 vuejs 中的基于类的组件中编写计算设置器