微信小程序实现tab切换

微信小程序实现tab切换,第1张

微信小程序使用的是类似MVVM类型的框架,本质是数据驱动视图,换句话来说就是逻辑层(javascript)去驱动界面层(view)的改变,功能实现核心主要在于 *** 作数据。

下面来详细讲解,微信小程序如何实现tab切换功能,如下图所示:

在wxml文件里面,搭建结构。其中,tab盒子是tab整体,btns里面的view是切换按钮,cons里面的view是切换的盒子内容。

把切换按钮btns和内容cons渲染出来。在js文件里面书写数据,并且在wxml文件里面通过wx:for进行列表渲染输出。

通过d性布局去书写样式。添加cur当前类名去控制当前按钮的样式和当前显示的内容盒子。

注意微信小程序使用的是rpx可以自适应的单位,规定所有屏幕宽度为750rpx,在iPhone6设备屏幕宽度换算是2rpx=1px。

逻辑层添加了active数据控制当前显示盒子。

wxml要书写判断验证去控制盒子是否有cur类名。

上面表达式表示,如果当前项的索引值index等于数据active,则此项有cur这个类名,否则就没有。注意cur类名是控制当前按钮样式和当前显示内容盒子的。

有cur这个类名的按钮会显示当前的样式,有cur这个类名的内容盒子是显示的,但是否有这个类名是通过active这个数据决定的。所以最后我们只需要把active这个数据的值修改成用户点击按钮的索引值即可实现tab切换功能。

首先要给按钮btn自定义索引值等于循环当前项的index,微信小程序给组件自定义索引值是通过在组件身上添加data-index=”{{index}}”属性,然后在js里面即可通过事件对象里面的e.currentTarget.dataset.index属性获取用户点击按钮的索引值。

给按钮自定义索引值和绑定事件,绑定点击事件通过给按钮组件添加属性bindtap=“函数名”,此处设置函数名为toggle。

把active的值设置为用户点击按钮的索引值,即可实现tab切换功能。

e.currentTarget.dataset.index获取用户点击按钮的索引值,微信小程序通过this.setData()去修改data里面的数据内容。

tabs数组对象下的值进行条件判断并修改属性值 isActive数组对象属性,v数组对象,i遍历下标

tabs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false)

collect数组对象下的值进行条件判断并修改属性值 goods_id数组对象属性,v数组对象,有一个满足的查询到了返回true

collect.some(v =>v.goods_id === this.GoodsInfo.goods_id)

//every必须每个都满足 否则是false

Array.every()

一.创建并使用组件的步骤

1.创建一个文件夹存放组件,并在里面创建一个组件文件夹,components,tabs

2.在tabs文件里添加组件模板

3.引用组件,在父组件的json文件中的usingComponents中添加子组件路径,compont

4.使用组件,相当于正常标签进行使用

二.父组件向子组件传参的步骤

父组件给子组件的tabs传入对象

1.父组件的数据

2.子组件做的 *** 作

如果没有传入数据,就会输出默认值value

3.子组件展示对象数据:

三.子组件向父组件传参的步骤

1.先给子组件添加一个点击事件

2.通过this.triggerEvent("自定义事件名称",{传的值})命令保证子组件和父组件同步被修改

3.父组件绑定子组件,定义一个事件名称,用来接收子组件传递的数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12048292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存