4-03.組件-父組件向子組件傳值
代碼:
<!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="./lib/vue-2.4.0.js"></script>
</head>
<body>
<div id="app">
<!-- 父組件,可以在引用子組件的時候, 通過 屬性綁定(v-bind:) 的形式, 把 需要傳遞給 子組件的數據,以屬性綁定的形式,傳遞到子組件內部,供子組件使用 -->
<com1 v-bind:parentmsg="msg"></com1>
</div>
<script>
// 創建 Vue 實例,得到 ViewModel
var vm = new Vue({
el: '#app',
data: {
msg: '123 啊-父組件中的數據'
},
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>