Vue中使用组件的三大步骤: 定义组件(创建组件) 注册组件 三、 使用组件(写组件标签 ) 如何定义-一个组件? 使用Vue . extend(options )创建,其中options和new Vue ( options)时传入的那个options儿乎样, 但也有点区别: 区别如下: 1.el不要写,为什么?-最终 所有的组件都要经过一个vm的管理,由vm中的e1决 定服务哪个容器。 2.data必须写成函数,为什么? -一避免组件被复用时,数据存在引用关系。 备注:使用template 可以配置组件结构。 如何注册组件? 1.局部注册:靠new Vue的时候传入components选项 2.全局注册:靠Vue.component(‘组件名’,组件) U英 三、编写组件标签:
<F></F>
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1.基本使用</title>
<script type="text/javascript" src="../js/vue.js"></script>
<link rel="shortcut icon" href="../ico—全图标/application/Burn.ico" type="image/x-icon">
</head>
<body>
<div id="root">
<hello></hello>
<hr>
<h1>{{msg}}</h1>
<hr>
<!-- 第三步: 编写组件标签-->
<F></F>
<hr>
<!-- 第三步: 编写组件标签-->
<S></S>
</div>
<script type="text/javascript">
Vue.config.productionTip = false//阻止vue在启动时生成生产提示
//第一步:创建F组件
const F = Vue.extend({
// el:'#root', //定不要写e1配置项,因为最终所有的组件都要被一个vm管理, 由vm决定服务于哪个容器。
template:`
<div>
<h2>景点名称:{{FName}}</h2>
<h2>景点地址:{{address}}</h2>
<button @click="showName">提示名称按钮</button>
</div>
`,
data(){
return {
FName:'日月湾',
address:'万宁'
}
}
})
//第一步:创建S组件
const S = Vue.extend({
template:`
<div>
<h2>景点别名:{{SName}}</h2>
<h2>景点建成:{{age}}</h2>
</div>
`,
data(){
return{
SName:'Riyue Bay',
age:52
}
}
})
//第一步:创建hello组件
const hello = Vue.extend({
template:`
<div>
<h2>你好嘛??</h2>
</div>
`,
data(){
return{
name:'Louie'
}
}
})
//第二步:全局注册组件
Vue.component('hello',hello)
//创建Vm
new Vue({
el:'#root',
data:{
msg:'哈哈哈哈'
},
//第二步:注册组件(局部注册)
components:{
F,
S
}
})
//创建Vm
new Vue({
el:'#root2',
})
</script>
</body>
</html>
效果:
|