1. 程式人生 > >Vuejs 元件之 $emit 和 v-on 的事件傳遞

Vuejs 元件之 $emit 和 v-on 的事件傳遞

<!-- v-on 偵聽元件事件,當元件觸發事件後進行事件處理 -->

 

<!-- $emit 觸發事件,並將資料提交給事件偵聽者 -->


 

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<script src="https://unpkg.com/vue/dist/vue.js"></script>

<title>Document</title>

</head>

<body>

 

<div id = "myApp">

<h1>人生加法</h1>

<add-method :a = "6" :b = "9" @add_event = "getAddResult"></add-method> <!-- v-on偵聽事件 當元件觸發後執行 getAddResult 方法 -->

<h2>{{result}}</h2>

</div>

<script>

 

Vue.component('add-method',{

props:['a','b'],

template:'<div><button @click = "add" >加吧</button></div>', //v-on偵聽事件 當元件觸發後執行 add 方法

methods:{

add: function(){

var value = 0;

value = this.a + this.b;

this.$emit('add_event',{ //當button元件被點選 add_event被觸發

result:value

});

}

},

});

 

var myApp = new Vue({

el:"#myApp",

data:{

result: 0

},

methods: {

getAddResult:function(pval){

this.result = pval.result; //給原始的result與賦值元件中result

}

},

});

</script>

</body>

</html>