首頁  >  文章  >  web前端  >  vue3子元件之間互相傳值問題怎麼解決

vue3子元件之間互相傳值問題怎麼解決

PHPz
PHPz轉載
2023-05-17 20:19:041358瀏覽

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: &#39;<button @click="transValue">Click</button>&#39;,
        methods: {
            transValue: () => bus.$emit("transValue", "hello from a")
        }
    });
    Vue.component("custom-b", {
        template: &#39;<input :value="msg">&#39;,
        data: function() {
            return {
                msg: ""
            }
        },
        mounted() {
            bus.$on("transValue", msg => this.msg = msg)
        }
    });
    new Vue({
        el: "#demo"
    });
    </script>
</html>

以上是vue3子元件之間互相傳值問題怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除