一、组件
1.创建全局组件
Vue.createApp({
})
component("btn",{
template:`<button @click="n++">{{n}}</button>`,
data(){return {n:1}}
})
app.mount("#app")
2.局部组件
使用组件分三步:
定义组件
const step = {
template:`<div><button @click="n--">-</button>{{n}}<button @click="n++">+</button></div>`,
data(){return {n:1}}
}
注册组件
Vue.createApp({
components:{step}
})
使用组件
<step>内部放html内容</step>
3.父传子props传递参数
传递
<step :num="10"></step>
<step :num="5"></step>
接收
props:{
"num":{type:Number,default:1}
},
使用
data(){return {n:this.num}}
4.子传父,emit事件
子组件里面,在step内部,this.
e
m
i
t
(
"
n
u
m
c
h
a
n
g
e
"
,
t
h
i
s
.
n
u
m
)
n
u
m
c
h
a
n
g
e
事
件
名
称
,
t
h
i
s
.
n
u
m
事
件
值
。
父
组
件
里
面
,
<
s
t
e
p
e
r
@
n
u
m
c
h
a
n
g
e
=
"
w
1
=
emit("numchange",this.num) numchange事件名称,this.num 事件值。 父组件里面, <steper @numchange="w1=
emit("numchange",this.num)numchange事件名称,this.num事件值。父组件里面,<steper@numchange="w1=event">
$event 就是子组件通过numchange传递过来的值 this.num