---
# System prepended metadata

title: Mitt跨元件資料傳遞 (4-9)
tags: [4. 元件, Vue]

---

# Mitt跨元件資料傳遞 (4-9)
###### tags: `Vue`、`4. 元件`
2022.3.7

* 引進mitt元件
* 撰寫「傳送方法」
* 撰寫「接收方法」
* 傳遞資料

### 1. 範例
```
<oldmoon></oldmoon>
<oldmoon1></oldmoon1>

<script type="module">
    import 'https://unpkg.com/mitt/dist/mitt.umd.js'; // 引入mitt套件包
    const emitter = mitt();
    
    const app = Vue.createApp({
            data(){
                return{
                    test:'這是內部資料'
    }}});

    app.component('oldmoon',{
        data(){
                return{
                    product:{
                        name:'玉米蛋餅',
                        price:30,
                        vegan:false
        }}},

        methods:{
                senddata(){
                    emitter.emit('data',this.product);
            }
        },
            
        template:`<button @click="senddata">送出資料</button>`}
    );

        
    app.component('oldmoon1',{
        data(){
                return{
                    data:{}
                }
        },
        created(){
            emitter.on('data',(data)=>{
                this.data = data;
            });
        },
        
        template:`<br><h1>產品</h1>
                  <br><h1>產品名稱:{{data.name}}</h1>
                  <br><h1>產品價格:{{data.price}}</h1>
                  <br><h1>是否為素食:{{data.vegan?'是':'否'}}</h1>`
        })

    app.mount('#app');    
</script>
```