<div id="app"></div>
<script></script>
複製代碼
一、這裏的註冊局部組件的時候,沒有使用鍵值對,默認k-v相等javascript
二、這裏的建立局部組件的時候,其實用了個語法糖,完整的寫法實際上是html
var MyFooter = Vue.extend({
template: `
<div>我是MyFooter</div>
`
})
複製代碼
Vue.component('MyLow', {
template: `
<div>我是MyLow</div>
`
})
new Vue({
el: '#app',
//註冊局部組件
components: {
MyHeader, MyBody, MyFooter
},
template: `
<div>
<my-header></my-header>
<my-body></my-body>
<my-footer></my-footer>
<my-low></my-low>
</div>
`,
data: function () {
return {}
}
})
複製代碼
全局組件,使用的時候無需聲明vue
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>組件化開發</title>
<script src="../vue.js"></script>
</head>
<body>
<div id="app"></div>
<script></script>
</body>
</html>
複製代碼
<script></script>
複製代碼
若是父組件中沒有slot
,那麼在使用的時候<div>我是插槽內容</div>
是不會被渲染的java
slot還能夠指定名稱app
var Parent={
template: `
<div>我是父組件<slot name="hello"></slot></div>
`
}
new Vue({
el: '#app',
components:{
Parent
},
template: `
<div>
<parent>
<div>我是插槽內容</div>
<div slot="hello">我是插槽內容2</div>
</parent>
</div>
`,
data: function () {
return {}
}
})
</script>
複製代碼
指定名稱的內容才進行渲染組件化
<script></script>
複製代碼
就好像使用$refs
獲取到子組件的信息,
咱們能夠使用$parent
獲取到父組件的信息this
var Child = {
template: `
<div>我是子組件</slot></div>
`,
created:function(){
console.log(this.$parent);
}
}
複製代碼
<script> var Child = { //第三步:子組件使用父組件傳遞過來的數據 template: ` <div>我是子組件:{{sendChild}}</div> `, //第一步:子組件接收父組件參數的名稱 props:['sendChild'] } var Parent = { //第二步:經過特定名稱的屬性,傳遞數據給子組件 template: ` <div> 我是父組件 <child sendChild="父組件給的"></child> </div> `, components: { Child } } new Vue({ el: '#app', components: { Parent }, template: ` <div> <parent> </parent> </div> `, data: function () { return {} } }) </script>
複製代碼

<script type="text/javascript"> Vue.prototype.$bus=new Vue() var MyHeader={ template:` <div> 我是頭部 {{ headermsg }} </div> `, data(){ return { headermsg:'我是頭部的信息' } }, created(){ // var self=this // self.$bus.$on('sending',function(val){ // self.headermsg=val // }) this.$bus.$on('sending',val=>{ this.headermsg=val }) } } var MyBody={ template:` <div>我是身體</div> `, } var MyFooter={ template:` <div>我是底部<button @click='sendhead'>我要跟頭部通訊</button></div> `, methods:{ sendhead(){ this.$bus.$emit('sending','我是底部的數據') } } } new Vue({ el:'#app', components:{ MyHeader, MyBody, MyFooter }, template:` <div> <my-header></my-header><hr> <my-body></my-body><hr> <my-footer></my-footer> </div> `, data(){ return {} }, }) </script>
複製代碼