在使用VUX的组件中,用到了PopupRadio组件,但是在文档中,并没有表明如何去获取select中的值,于是,我在这里使用了$refs与ref,直接上代码
<template>
<div class="getOilCard">
<ul>
<li>
<PopupRadio :options="opt" ref="liSon" class="liSon" title="请选择业务类型" @on-hide="hide"></PopupRadio>
</li>
<li>
<!--支持key value 的写法-->
<PopupRadio :options="opt1" v-model='opt1_son' class="liSon" title="类型" @on-hide="hides"></PopupRadio>
</li>
</ul>
<router-view></router-view>
</div>
</template>
<script>
import { PopupRadio } from 'vux';
export default {
data(){
return{
opt:["申请油卡","资料更改","绑卡","解绑"],
opt1:[
{key:1,value:"第一"},{key:2,value:"第二"},{key:3,value:"第三"},
],
opt1_son:""
}
},
components: {
PopupRadio
},
methods:{
hide(){
console.log(this.$refs.liSon.$el.children[2].innerText)
},
hides(){
console.log(this.opt1_son);
//输出的是key ,比如选中的是 第一 控制台输出 1
},
}
}
</script>
<style scoped>
.getOilCard > ul{
width: 90%;margin: 0.5rem auto;
}
.getOilCard > ul > li{
position: relative;border-bottom: 0.01rem solid #e6e6e6;
width: 100%;height: 1.2rem;margin: 0.3rem auto;line-height: 1.2rem;
}
.liSon{
position: absolute;top:0;left: 0;right: 0;bottom: 0;border: none;
}
</style>
一般获取DOM元素,需document.querySelector(".input")获取dom节点,然后执行其他操作。
但是用ref绑定之后,不需要在获取dom节点,直接在上面的input上绑定input,然后
r
e
f
s
里
面
调
用
然
后
在
j
s
里
面
这
样
调
用
t
h
i
s
.
refs里面调用 然后在js里面这样调用 this.
refs里面调用然后在js里面这样调用this.refs.input
使用方法
<template>
<input type="text" ref="input" @click='click'/>
</template>
<script>
export default{
methods:{
click(){
this.$refs.input.value=1 //减少获取dom节点的消耗
}
}
}
</script>