4.1、【测试】根组件中 template的结构 优先级高于 app容器中的结构
>?????????【效果】当template和app容器中同时出现结构时,效果
????????组件是带有名称的可复用实例,通常一个应用会以一棵嵌套的组件树的形式来组织,比如:页头、侧边栏、内容区等组件。
????????组件可以拥有自己独立的 结构,样式,逻辑。方便后期维护。
?
<body>
<div id="app">
<header>
<div>hello world</div>
<h2>logo</h2>
<ul>
<li>首页</li>
<li>视频</li>
<li>音乐</li>
</ul>
</header>
</div>
</body>
<body>
<div id="app">
<my-head></my-head>
</div>
<script>
let app = Vue.createApp({
data(){
return {
}
}
})
app.component('my-head', {
template: `
<header>
<div>{{ message }}</div>
<h2>logo</h2>
<ul>
<li>首页</li>
<li>视频</li>
<li>音乐</li>
</ul>
</header>
`
});
let vm = app.mount('#app');
</script>
</body>
?
定义组件:驼峰、短线 两种风格定义
调用组件:短线方式
?
????????app容器可以看成根组件,所以根组件跟普通组件都具备相同的配置信息,例如:data、computed、methods?等等选项。
<div id="app">
<my-head></my-head>
</div>
<script>
// 根组件
let RootApp = {
data(){
return {
}
}
};
// MyHead组件
let MyHead = {
template: `
<header>
<div>{{ message }}</div>
<h2>logo</h2>
<ul>
<li>首页</li>
<li>视频</li>
<li>音乐</li>
</ul>
</header>
`
};
let app = Vue.createApp(RootApp)
app.component('MyHead', MyHead);
let vm = app.mount('#app');
</script>
?
<body>
<div id="app">
<my-head></my-head>
</div>
<script>
let MyLogo = {
template: `
<h2>logo</h2>
`
};
let MyHead = {
template: `
<header>
<div>{{ message }}</div>
<my-logo></my-logo>
<ul>
<li>首页</li>
<li>视频</li>
<li>音乐</li>
</ul>
</header>
`
};
let RootApp = {
data(){
return {
}
}
};
let app = Vue.createApp(RootApp)
//全局组件
app.component('MyHead', MyHead);
app.component('MyLogo', MyLogo);
let vm = app.mount('#app');
</script>
</body>