組件傳值-子組件通過事件調用向父組件傳值
阿新 • • 發佈:2019-03-02
通過 .data app 方法 按鈕 sca input func body
<!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"> <title>Document</title> <script src="./js/vue-2.4.0.js"></script> </head>
<body>
<div id="app">
<!-- 父組件向子組件傳遞方法,使用的是 事件綁定機制:v-on ,當我們自定義了一個事件屬性之後,那麽子組件就能夠,通過某些方式,來調用傳遞進去的這個方法了 -->
<com2 @func="show"></com2>
</div>
<template id="tmpl">
<div>
<h1>這是子組件</h1>
<input type="button" value="這是子組件中的按鈕,點擊它,觸發父組件傳遞過來的 func 方法" @click="myclick">
</div>
</template>
<script>
//定義了一個字面量類型的 組件模板對象
var com2={
template:‘#tmpl‘,//通過指定了一個ID 表示說,要去加載 這個指定ID 的template 元素中的內容,當做 組件的HTML 結構
data(){
return{
sonmsg:{name:‘小頭兒子‘,age:6}
}
},
methods:{
myclick(){
//當點擊子組件的按鈕的時候,如何拿到父組件傳遞過來的 func 方法,並調用這個方法?
//emit 英文原意:觸發,調用,發射的意思
//this.$emit(‘func123‘,123,456)
this.$emit(‘func‘,this.sonmsg)
}
}
}
//創建 Vue 實例,得到 ViewModel
var vm=new Vue({
el:‘#app‘,
data:{
datamsgFormSon:null
},
methods:{
show(data){
//console.log(‘調用了父組件身上的 show 方法:---‘+data)
//console.log(data):
this.datamsgFormSon=data
}
},
components:{
com2
}
})
</script>
</body>
</html>
<!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"> <title>Document</title> <script src="./js/vue-2.4.0.js"></script> </head>
組件傳值-子組件通過事件調用向父組件傳值