详解mpvue中使用vant时需要注意的onChange事件的坑
程序员文章站
2023-12-05 21:18:10
最近用了一下vant weapp组件库,但是由于我是用mpvue写的,所以自然跟小程序引用不一样,比如我最近引用了vant里面的collapse折叠面板,里面介绍的使用方法...
最近用了一下vant weapp组件库,但是由于我是用mpvue写的,所以自然跟小程序引用不一样,比如我最近引用了vant里面的collapse折叠面板,里面介绍的使用方法是这样的
1.在 app.json 或 index.json 中引入组件
"usingcomponents": { "van-collapse": "path/to/vant-weapp/dist/collapse/index", "van-collapse-item": "path/to/vant-weapp/dist/collapse-item/index" }
2.通过value控制展开的面板列表,activenames为数组格式
<van-collapse value="{{ activenames }}"> <van-collapse-item title="有赞微商城" name="1"> 提供多样店铺模板,快速搭建网上商城 </van-collapse-item> <van-collapse-item title="有赞零售" name="2"> 网店吸粉获客、会员分层营销、一机多种收款,告别经营低效和客户流失 </van-collapse-item> <van-collapse-item title="有赞美业" name="3" disabled> 线上拓客,随时预约,贴心顺手的开单收银 </van-collapse-item> </van-collapse>
page({ data: { activenames: ['1'] }, onchange(event) { this.setdata({ activenames: event.detail }); } });
但是在mpvue里面不能直接这样引入
下面是我的代码
<van-collapse :value="activenames" @change="onchange($event)"> <van-collapse-item title="有赞微商城" name="1"> 提供多样店铺模板,快速搭建网上商城 </van-collapse-item> <van-collapse-item title="有赞零售" name="2"> 网店吸粉获客、会员分层营销、一机多种收款,告别经营低效和客户流失 </van-collapse-item> <van-collapse-item title="有赞美业" name="3" disabled> 线上拓客,随时预约,贴心顺手的开单收银 </van-collapse-item> </van-collapse>
export default { data () { return { activename: '1' } }, methods: { onchange (event) { console.log(event) this.activename = event.mp.detail } } }
得把原生小程序使用方式为改为mpvue 使用方式
首先是数据绑定方式
value="{{activenames}}"
改为
v-bind:value="activenames" //或者 :value="activenames"
然后是事件监听
在van-collapse组件里加个监听事件
@change="onchange($event)"
mpvue中获取event值也与原生小程序有所不同:
onchange(event){ // 获取表单组件filed的值 console.log(event.mp.detail) // 注意加入mp }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。