vue3子组件之间相互传值问题怎么解决

广告:宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取~~~

vue3子组件之间相互传值问题怎么解决

vue3子组件之间相互传值

1、引用第三方库mitt

npm install mitt
登录后复制

2、在项目src文件夹下创建utils文件夹,在utils创建mitt.js,mitt.js中的代码如下:

import mitt from "mitt";export default new mitt();
登录后复制

3、示例:组件A传值给组件B

//在组件A中引入import mitt from "@/utils/mitt";//调用传值mitt.emit("mittClick", "数据数据数据");
登录后复制
//在组件B中引入import mitt from "@/utils/mitt";//接收传值mitt.on("mittClick", (val) => {    console.log(val)//数据数据数据})
登录后复制vue不同组件之间相互传值

使用一个空Vue实例来进行传值,通过$emit,$on即可。

<!DOCTYPE html><html lang="zh-CN">    <head>        <title></title>        <meta charset="utf-8">        <script src="./main/vue.js"></script>    </head>    <body>        <div id="demo">            <!-- test code -->            <custom-a></custom-a>            <custom-b></custom-b>            <!-- test code -->        </div>    </body>    <script type="text/javascript">    let bus = new Vue();    Vue.component("custom-a", {        template: '<button @click="transValue">Click</button>',        methods: {            transValue: () => bus.$emit("transValue", "hello from a")        }    });    Vue.component("custom-b", {        template: '<input :value="msg">',        data: function() {            return {                msg: ""            }        },        mounted() {            bus.$on("transValue", msg => this.msg = msg)        }    });    new Vue({        el: "#demo"    });    </script></html>
登录后复制

以上就是vue3子组件之间相互传值问题怎么解决的详细内容,更多请关注9543建站博客其它相关文章!

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:详细介绍 uniapp sdk 的流程
下一篇:如何编写vue的组件库

发表评论

关闭广告
关闭广告