作为一个后端选手,在阅读element ui文档时总是对附录的感到疑惑,可能是我对前端不太熟,总觉得一个组件怎么也有method、attribute 并且event 又是什么,其实可以将vue中的组件都看成一个对象,官方术语应该是叫dom元素,下面介绍以el-input元素为例进行三种属于的介绍:
attribute
attriobute:这个很简单,也就是在标签中可以直接定义的一个东西
上面是input 的attribute,比如可以使用diable属性对输入框进行锁定:
<el-input disabled></el-input>
method
的用法,可以通过父组件传给子组件的方法
app.vue
<template>
<!-- <img alt="Vue logo" src="./assets/logo.png">-->
<!-- <HelloWorld msg="Welcome to Your Vue.js App"/>-->
<el-input v-model="input" placeholder="Please input" ref="input" />
<el-button @click="say">聚焦</el-button>
</template>
script
methods: {
say(){
this.$.refs.input.focus()
}
}
可以使用ref对组件中的dom元素使用focus,实现的效果就是点击按钮就会对输入框进行聚集焦点。
event
事件就像是一个触发器,当某些情况发生时会产生部分操作,比如input的事件有以下这些
现在对input输入框加入input事件,当输入改变时产生部分操作。
示例:
app.vue
<template>
<!-- <img alt="Vue logo" src="./assets/logo.png">-->
<!-- <HelloWorld msg="Welcome to Your Vue.js App"/>-->
<el-input v-model="input" placeholder="Please input" ref="input" v-on:input="add" />
<el-p>{{ message }}</el-p>
<el-button @click="say">聚焦</el-button>
</template>
script
data(){
return {
message:''
}
},
methods: {
say(){
this.$.refs.input.focus()
},
add(){
this.message=this.message+'1'
}
}
示例