《智能前端技术与实践》——第 2 章 前端开发基础 ——2.7 微信小程序开发——2.7.2 页面描述文件(2)

简介: 《智能前端技术与实践》——第 2 章 前端开发基础 ——2.7 微信小程序开发——2.7.2 页面描述文件(2)

《智能前端技术与实践》——第 2 章 前端开发基础 ——2.7 微信小程序开发——2.7.2 页面描述文件(1): https://developer.aliyun.com/article/1228017?groupCode=tech_library


2.条件渲染


所谓条件渲染是指根据绑定表达式的值来判断是否渲染当前组件,如代码清单 2-32 所示。


代码清单 2-32


<!-- 三元运算 --><viewclass="description"hidden="{{desFlag?true:false}}">{{description}}
</view>


在代码清单 2-32 中,当 desFlag 变量的值为 true 时,view 组件将不会被渲染;当 desFlag 变量的值为 false 时,将 view 组件渲染输出到页面。


在小程序中,使用另一种方式来进行类似的条件渲染,即使用 wx:if=""来判断是否需要渲 染该代码块,如代码清单 2-33 所示。


代码清单 2-33

<viewwx:if="{{condition}}"> True </view>


在代码清单 2-33 中,当 condition 变量的值为 true 时,view 组件将被渲染输出;否则,该组 件将不会被渲染。我们也可以用 wx:elif 和 wx:else 添加一个 else 块,如代码清单 2-34 所示。


代码清单 2-34


<viewwx:if="{{length > 5}}"> 1 </view><viewwx:elif="{{length > 2}}"> 2 </view><viewwx:else> 3 </view>

在代码清单 2-34 中,当 length 大于 5 时,界面中渲染输出的数字是 1;当 length 大于 2 且小于 或等于 5 时,界面中渲染输出的数字是 2;当 length 小于或等于 2 时,界面中渲染输出的值是 3。


接下来,我们看一下 wx:if 与 hidden 之间的区别。首先,控制渲染的逻辑变量的含义相反。 其次,wx:if 有更高的切换消耗,因为 wx:if 之中的模板可能包含数据绑定,当 wx:if 的条件值 切换时,框架有一个局部渲染的过程,来确保条件块在切换时销毁或重新渲染。而 hidden 就比 较简单,组件始终会被渲染,只是简单地控制显示与隐藏。所以,如果需要频繁切换,用 hidden 更好;如果运行时条件不大可能改变,则使用 wx:if 较好。


因为 wx:if 是一个控制属性,所以需要将它添加到一个标签上。如果一次性判断多个组件 标签,我们可以使用一个标签将多个组件包装起来,并在上面使用 wx:if 控制属性。 注意,并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接收 控制属性,如代码清单 2-35 所示。


代码清单 2-35


<blockwx:if="{{true}}"><view> view1 </view><view> view2 </view></block>

运行结果如图 2-39 所示。


image.png


代码清单 2-35 中,当条件为 true 时,标签包含的两个 view 组件的值会被渲染出 来;当条件为 false 时,不会被渲染出来。



《智能前端技术与实践》——第 2 章 前端开发基础 ——2.7 微信小程序开发——2.7.2 页面描述文件(3): https://developer.aliyun.com/article/1228015?groupCode=tech_library

相关文章
|
1天前
|
Dart 前端开发 测试技术
【Flutter前端技术开发专栏】Flutter开发中的代码质量与重构实践
【4月更文挑战第30天】随着Flutter在跨平台开发的普及,保证代码质量成为开发者关注的重点。优质代码能确保应用性能与稳定性,提高开发效率。关键策略包括遵循最佳实践,编写可读性强的代码,实施代码审查和自动化测试。重构实践在项目扩展时尤为重要,适时重构能优化结构,降低维护成本。开发者应重视代码质量和重构,以促进项目成功。
【Flutter前端技术开发专栏】Flutter开发中的代码质量与重构实践
|
1天前
|
缓存 监控 前端开发
【Flutter 前端技术开发专栏】Flutter 应用的启动优化策略
【4月更文挑战第30天】本文探讨了Flutter应用启动优化策略,包括理解启动过程、资源加载优化、减少初始化工作、界面布局简化、异步初始化、预加载关键数据、性能监控分析以及案例和未来优化方向。通过这些方法,可以缩短启动时间,提升用户体验。使用Flutter DevTools等工具可助于识别和解决性能瓶颈,实现持续优化。
【Flutter 前端技术开发专栏】Flutter 应用的启动优化策略
|
1天前
|
存储 缓存 监控
【Flutter前端技术开发专栏】Flutter中的列表滚动性能优化
【4月更文挑战第30天】本文探讨了Flutter中优化列表滚动性能的策略。建议使用`ListView.builder`以节省内存,避免一次性渲染所有列表项。为防止列表项重建,可使用`UniqueKey`或`ObjectKey`。缓存已渲染项、减少不必要的重绘和异步加载大数据集也是关键。此外,选择轻量级组件,如`StatelessWidget`,并利用Flutter DevTools监控性能以识别和解决瓶颈。持续测试和调整以提升用户体验。
【Flutter前端技术开发专栏】Flutter中的列表滚动性能优化
|
1天前
|
Dart 前端开发 安全
【Flutter前端技术开发专栏】Flutter中的线程与并发编程实践
【4月更文挑战第30天】本文探讨了Flutter中线程管理和并发编程的关键性,强调其对应用性能和用户体验的影响。Dart语言提供了`async`、`await`、`Stream`和`Future`等原生异步支持。Flutter采用事件驱动的单线程模型,通过`Isolate`实现线程隔离。实践中,可利用`async/await`、`StreamBuilder`和`Isolate`处理异步任务,同时注意线程安全和性能调优。参考文献包括Dart异步编程、Flutter线程模型和DevTools文档。
【Flutter前端技术开发专栏】Flutter中的线程与并发编程实践
|
9月前
|
Web App开发 前端开发 JavaScript
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
95 0
|
9月前
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图单线程配置
前端学习笔记202305学习笔记第二十三天-地图单线程配置
66 0
前端学习笔记202305学习笔记第二十三天-地图单线程配置
|
9月前
|
前端开发 API
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-react-redux的工作流程
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-react-redux的工作流程
55 0
|
9月前
|
前端开发
前端学习笔记202306学习笔记第五十一天-工厂模式4
前端学习笔记202306学习笔记第五十一天-工厂模式
34 0
|
9月前
|
前端开发
前端学习笔记202305学习笔记第二十八天-数组结构之列表拖拽改变顺序4
前端学习笔记202305学习笔记第二十八天-数组结构之列表拖拽改变顺序4
32 0
|
5月前
|
前端开发 JavaScript
《Webpack5 核心原理与应用实践》学习笔记-> 构建微前端应用
《Webpack5 核心原理与应用实践》学习笔记-> 构建微前端应用
41 1