组件通信
组件是什么
组件:具有完整功能(html-视图,css-样式,js-逻辑),并且独立运行的模块
小程序组件分类
内置组件:小程序内置的组件,直接拿来就可以使用,无需安装
例如: view,text,image,button,swiper,switch…
第三方组件:需要安装,引入,再使用
最好使用就是vant UI
vant ui官方文档
关于微信小程序页面与组件的通信
WXML 数据绑定:用于父组件向子组件的指定属性设置数据,仅能设置 JSON 兼容数据(自基础库版本 2.0.9 开始,还可以在数据中包含函数)。
事件:用于子组件向父组件传递数据,可以传递任意数据
前面两种可参考
小程序组件通信
如果以上两种方式不足以满足需要,父组件还可以通过 this.selectComponent 方法获取子组件实例对象,这样就可以直接访问组件的任意数据和方法。
操作方法
在组件标签里面可以通过class或者id属性对标签进行定义,建议使用id属性,class容易出现重复
在页面通过监听事件,去页面js文件里调用this.selectComponent(’#id’);
通过this.selectComponent( ‘#id’)获取组件对象;
通过组件对象获取组件内部的方法从而进行改变组件的数据
<my-sel id="my-sel"></my-sel>
<button bindtap="tapcounter">通过页面直接改变组件的数据</button>
页面js文件的事件监听
tapcounter(){
const mysel= this.selectComponent('#my-sel')
mysel.handinrement(30)
}
组件的代码
methods: {
handinrement(num){
this.setData({
//counter可以在data里面定义
counter:this.data.counter+num
})
}
}