小程序
小游戏
企业微信
微信支付
扫描小程序码分享
wxml 中wx:if js 中if wxs 中if 那个性能更高,那个处理更好
如果前端存在这种数组值,是用wx:for 循环 再用wx:if 性能高还是 wxs 做if处理性能高?想了解更深层次的原理?还望大佬指点
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
微信官方文档·小程序->开发->指南->小程序框架->视图层->WXS
文档说得挺清楚的了
我个人相对于偏向于把它理解为视图层(渲染层)的js,主要是渲染页面效果的时候使用。页面的一些逻辑判断,条件判断可以在这里写。
比如说,页面需要渲染一个列表,但是有两个数组,页面只需要渲染两个数组交集的部分,此时如果用逻辑层的js,需要在逻辑层js中将一个数组处理成需要的数据,或者新建一个数组作为渲染。如果这两个数组在逻辑层需要多次使用,即不能直接修改原始数据,只能多创建一个数组。使用wxs就能直接在wxs里面处理数据,不需要新创建数据。
另外一个常见的应用就是当页面存在组件需要拖拽,存在频繁的setData操作,小程序会容易卡顿,使用wxs处理就能解决这个问题。
你上面提到的列表渲染里通过wx:if控制显隐,不管是逻辑层还是渲染层处理性能都几乎是一样的,wx:if条件切换时会对条件块进行销毁或重新渲染,使用逻辑层或者渲染层的区别只是你条件切换的性能区别。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
微信官方文档·小程序->开发->指南->小程序框架->视图层->WXS
文档说得挺清楚的了
我个人相对于偏向于把它理解为视图层(渲染层)的js,主要是渲染页面效果的时候使用。页面的一些逻辑判断,条件判断可以在这里写。
比如说,页面需要渲染一个列表,但是有两个数组,页面只需要渲染两个数组交集的部分,此时如果用逻辑层的js,需要在逻辑层js中将一个数组处理成需要的数据,或者新建一个数组作为渲染。如果这两个数组在逻辑层需要多次使用,即不能直接修改原始数据,只能多创建一个数组。使用wxs就能直接在wxs里面处理数据,不需要新创建数据。
另外一个常见的应用就是当页面存在组件需要拖拽,存在频繁的setData操作,小程序会容易卡顿,使用wxs处理就能解决这个问题。
你上面提到的列表渲染里通过wx:if控制显隐,不管是逻辑层还是渲染层处理性能都几乎是一样的,wx:if条件切换时会对条件块进行销毁或重新渲染,使用逻辑层或者渲染层的区别只是你条件切换的性能区别。