組件傳值-父組件向子組件傳值和 data 與 props 的區別

<!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>Title</title>
<script src="js/vue-2.4.0.js"></script>
</head>
<body>
<div id="app">
<!-- 父組件,能夠在引用子組件的時候,經過 屬性綁定(v-bind:)的形式,把須要傳遞給 子組件的數據,以屬性綁定的形式,傳遞到子組件內部,供子組件使用-->
<com1 v-bind:parentmsg="msg"></com1>
</div>
<script>
//建立 Vue 實例,獲得 viewmodel
var vue=new Vue({
el:'#app',
data:{
msg:'這是父組件中的數據'
},
methods:{},
components:{
//結論:通過演示,發現子組件中,默認沒法訪問到父組件中的data上的數據和 methods 中的方法
com1:{
data:{
//注意:子組件中的 data 數據,並非經過 父組件傳遞過來的,而是子組件自身私有的,好比:子組件經過Ajax,請求回來的數據,均可以放到 data 身上;
//data 上的數據,都是可讀可寫的;
return{
title:'123',
content:'qqq'
}
},
template:'<h1 @click="change">這是子組件---{{ parentmsg }}</h1>',
//注意:組件中的全部 props 中的數據,都是經過父組件傳遞給子組件的
// props 中的數據,都是隻讀的,沒法中心賦值
props:['parentmsg'],//把父組件傳遞過來的 parentmsg 屬性,先在props 數組中,定義一下,這樣才能使用這個數據
directives:{},
filters:{},
components:{},
methods:{
change(){
this.parentmsg='被修改了'
}
}
}
}
});
</script>
</body>
</html>
相關文章
相關標籤/搜索