微信小程序wxs 是干吗用的,我需要一个官方的回答?
发布于 4 年前 作者 ligao 11956 次浏览 来自 官方Issues

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条件切换时会对条件块进行销毁或重新渲染,使用逻辑层或者渲染层的区别只是你条件切换的性能区别。

回到顶部