vue 实例如何给一个单文件组件传值

如题, 先看代码:

我的入口文件 index.js 代码如下:

import app from './component/app.vue'
let v = new Vue({
      el: '#app',
      data() {
        return {
            test: '',
        };
    },
      template: '<app/>',
    components: {
        app
    }
    
});

Vue.prototype.test = function (str) {
    v.$set(v, 'test', str);
}

app.vue 文件代码如下:

<template>
    <div class="wrap">
        <div>{{test}}</div>
    </div>
</template>
<script type="text/javascript">
export default {
    name: 'app',
    data() {
        return {
            test: {},
        }
    },
};
</script>

我在入口文件里 定义了一个 全局方法 test, 想在(无论哪个)子组件里 直接 通过 this.test('this is test') 都能给 app.vue 里传一个 test 值进来,然后更改 app.vuetest值,不知道有什么办法能做到这个,或者有其他办法能实现我的功能

阅读 3.4k
1 个回答

用$emit发送,$on接收,具体参见链接
可以在App.vue里

import Vue from 'vue'
Event=new Vue()
//然后在组件里通过Event.$emit发送,Event.$on接收

或者新建一个event.js

import Vue from 'vue'
export var Event = new Vue()

在要传递的组件里

import { event } from 'event.js'
Event.$emit......
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题