Home.vue 和News.vue都挂在Header.vue
Header.vue
<template>
<div id="header">
<h2 class="header">这是一个头部组件</h2>
</div>
</template>
<script>
export default {
data(){
return{
msg:'这是一个头部组件'
}
}
};
</script>
<style lang="scss">
.header{
background:#000;
color:#fff;
}
</style>
Home.vue
<template>
<!-- 所有的内容要被根节点包含起来 -->
<div id="home">
<v-header></v-header>
<hr>
<h2>这是一个首页组件--{{msg}}</h2>
<button @click="run()">执行run方法</button>
</div>
</template>
<script>
//引入头部组件
import Header from './Header.vue';
export default{
data(){
return {
msg:'我是一个首页组件msg'
}
},
methods:{
run(){
alert(this.msg);
}
},
components:{
'v-header':Header
}
}
</script>
<style lang="scss" scoped>
/*css 局部作用域 scoped*/
h2{
color:red
}
</style>
News.vue
<template>
<div>
<v-header></v-header>
<h2>这是一个新闻组件</h2>
<ul>
<li >
111111
</li>
<li>
2222
</li>
<li>
333333
</li>
</ul>
</div>
</template>
<script>
//引入头部组件
import Header from './Header.vue';
export default {
data(){
return{
msg:'我是一个新闻组件'
}
},components:{
'v-header':Header
}
};
</script>
<style lang="scss">
</style>
App.vue
<template>
<!-- 本文件内容:组件的引入、挂载与使用 -->
<div id="app">
<!-- 3、在模板中使用 -->
<v-home></v-home>
<hr >
<v-news></v-news>
</div>
</template>
<script>
// 1、引入组件
import Home from './components/Home.vue';
import News from './components/News.vue';
export default {
data () {
return {
msg:'你好vue'
}
},
// 2、挂载组件
components:{ /*前面的组件名称不能和html标签一样*/
'v-home':Home,
'v-news':News
}
}
</script>
<style lang="scss">
</style>