Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用自定义Vue实例注入Vue组件_Javascript_Vue.js_Vue Component - Fatal编程技术网

Javascript 如何使用自定义Vue实例注入Vue组件

Javascript 如何使用自定义Vue实例注入Vue组件,javascript,vue.js,vue-component,Javascript,Vue.js,Vue Component,我见过一些插件使用自定义Vue实例来调用自己的Vue组件。差不多 this.$activateLoadingBar.options({color:"Green", msg:"loading"}) 然后会弹出一个绿色的加载条,其消息为“加载” 我想试着创造自己。因此,我创建了一个新组件,并使用 Vue.prototype.$<name> = ...enter code here... Vue.prototype.$=…在此处输入代码。。。 那我就完全迷路了。我应该怎么做才能得到

我见过一些插件使用自定义Vue实例来调用自己的Vue组件。差不多

this.$activateLoadingBar.options({color:"Green", msg:"loading"})
然后会弹出一个绿色的加载条,其消息为“加载”

我想试着创造自己。因此,我创建了一个新组件,并使用

 Vue.prototype.$<name> = ...enter code here...
Vue.prototype.$=…在此处输入代码。。。

那我就完全迷路了。我应该怎么做才能得到我需要的结果?我不知道这个方法叫什么,所以我无法搜索internet。

您可以使用全局事件总线。请参见下面的示例:

<template>
  <div>
    <button @click="sendMessageToChild">Send message to child</button>
    <HelloWord />
  </div>
</template>

<script>
import HelloWord from '@/components/HelloWord.vue';

export default {
  name: 'App',
  components: { HelloWord },
  methods: {
    sendMessageToChild() {
      this.$root.$emit('messageToChild', 'any text');
    },
  },
};
</script>


向孩子发送消息
从“@/components/HelloWord.vue”导入HelloWord;
导出默认值{
名称:“应用程序”,
组件:{HelloWord},
方法:{
sendMessageToChild(){
这是.$root.$emit('messageToChild','anytext');
},
},
};

x={{message}}
导出默认值{
名称:“HelloWord”,
数据(){
返回{
消息:“”,
};
},
安装的(){
this.$root.$on('messageToChild',text=>(this.message=text));
},
};
在本例中,有两个组件(父组件和子组件)。父组件调用子组件

但是你可以改变这个,孩子可以打电话给父母


另一方面,您可以使用或。但是,如果您是初学者,这将更加复杂。

您可以使用全局事件总线。请参见下面的示例:

<template>
  <div>
    <button @click="sendMessageToChild">Send message to child</button>
    <HelloWord />
  </div>
</template>

<script>
import HelloWord from '@/components/HelloWord.vue';

export default {
  name: 'App',
  components: { HelloWord },
  methods: {
    sendMessageToChild() {
      this.$root.$emit('messageToChild', 'any text');
    },
  },
};
</script>


向孩子发送消息
从“@/components/HelloWord.vue”导入HelloWord;
导出默认值{
名称:“应用程序”,
组件:{HelloWord},
方法:{
sendMessageToChild(){
这是.$root.$emit('messageToChild','anytext');
},
},
};

x={{message}}
导出默认值{
名称:“HelloWord”,
数据(){
返回{
消息:“”,
};
},
安装的(){
this.$root.$on('messageToChild',text=>(this.message=text));
},
};
在本例中,有两个组件(父组件和子组件)。父组件调用子组件

但是你可以改变这个,孩子可以打电话给父母


另一方面,您可以使用或。但是如果您是初学者,这会更复杂。

谢谢,我使用Vuex,但我不知道如何在Vuex中调用$root.$emit。如果您使用Vuex,则不能调用
$root.$emit
。使用Vuex,必须创建状态和变异。全局事件总线适用于简单情况。谢谢,我使用Vuex,但我不知道如何在Vuex中调用$root.$emit。如果使用Vuex,则不能调用
$root.$emit
。使用Vuex,必须创建状态和变异。全局事件总线用于简单情况。