上一篇:vue入门(三)事件(方法)处理、侦听器、模板引用
1.组件最基础的用法:
首先有一个button.vue的组件,里面只画了一个按钮
button.vue:
<script>
export default({
data(){
return{
buttonText:'button1'
}
},
methods:{
buttonClick(){
debounce(function(){
alert('dddd');
},500)
}
}
})
</script>
<template>
<div><button @click="buttonClick()">{{ buttonText }}</button></div>
</template>
在需要引用的vue页面里添加引用:
test.vue:
<script>
import componets from '../form/button.vue'
export default{
components:{
componets
}
}
</script>
<template>
<componets/><componets/>
</template>
可以多次引用,实现的效果如下:
2.传入参数props:
在组件里:
export default{
props:['title']
}
显示:
<template>
<div><button>{{ title }}</button></div>
</template>
引用该组件时:
<componets title="传递"/><componets/>
3.父子之间调用事件($emits)
vue的例子是,在父页面调用子页面的方法,使子页面的按钮实现点击放大文字的效果
在父页面调用子页面的时候:
<template>
<div id="div" :style="{fontSize:postFontSize+'px'}"> //这里绑定样式,可以根据数据变化改变字体大小,postFontSize为父页面data里的一个数据
<componets title="传递" @enlarge-text="postFontSize+=1"/> //这里把需要实现的语句放在enlarge-text事件里
//这个事件的名字是子页面已经定义好的
</div>
</template>
子页面的default export:
export default({
emits:['enlarge-text']
})
这里相当于声明一个事件叫enlarge-text,父页面你随便调,我已经写好了。
这个事件在html里绑定到click事件,就能实现点击触发的效果了,点击后,就是父页面传给他什么语句,他就执行什么语句了。
<template>
看我越来越大
<button @click="$emit('enlarge-text')">Enlarge text</button>
</template>
上一篇:vue入门(三)事件(方法)处理、侦听器、模板引用