微信小程序开发---视图层(View)
WXML
WXML能力:
- 数据绑定
- 列表渲染
- 条件渲染
- 模板
- 事件
数据绑定
数据绑定使用 Mustache 语法(双大括号)将变量包起来,可作用于内容,组件属性(需要在双引号之内),控制属性(需要在双引号之内),关键字(需要在双引号之内),运算,逻辑判断,字符串运算,数据路径运算,组合,数组,对象。
详细内容见:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/data.html
列表渲染
wx:for
在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。
wx:key
如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 <input> 中的输入内容,<switch>的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符。
wx:key 的值以两种形式提供
- 字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
- 保留关键字
*this代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字,如:
当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率
详细见:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/list.html
条件渲染
- 使用
wx:if="{{condition}}"来判断是否需要渲染该代码块 用
wx:elif和wx:else来添加一个 else 块如果要一次性判断多个组件标签,可以使用一个
<block/>标签将多个组件包装起来,并在上边使用wx:if控制属性。wx:if 在隐藏的时候不渲染,而 hidden 在隐藏时仍然渲染,只是不呈现。
详细见:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/conditional.html
模板
<template>可以在模板中定义代码片段,然后在不同的地方调用。
- 使用name属性作为模板名字
- 使用is属性,声明需要的使用的模板,然后将模板所需要的data传入
详细见:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/template.html
**事件**
不再赘述,详细见:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html
冒泡事件与非冒泡事件区别:是否向父节点传递,也就是说子节点触发事件,父节点也能接收的是冒泡事件
事件绑定和冒泡:bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。
引用
通过import和include来引用文件。注意作用域。
- C import B,B import A,在C中可以使用B定义的
template,在B中可以使用A定义的template,但是C不能使用A定义的template。 include可以将目标文件除了<template/><wxs/>外的整个代码引入,相当于是拷贝到include位置
详细见:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/import.html
WXSS
WXSS 具有 CSS 大部分特性。同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。与 CSS 相比,WXSS 扩展的特性有:尺寸单位,样式导入
详细见:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxss.html
WXS
WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。
注意
- wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
- wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。
- wxs 的运行环境和其他 javascript 代码是隔离的,wxs 中不能调用其他 javascript 文件中定义的函数,也不能调用小程序提供的API。
- wxs 函数不能作为组件的事件回调。
- 由于运行环境的差异,在 iOS 设备上小程序内的 wxs 会比 javascript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异
详细见:https://www.w3cschool.cn/weixinapp/weixinapp-t71j2czl.html
微信小程序开发---视图层(View)的更多相关文章
- 微信小程序开发---逻辑层(App Service)
再说逻辑层之前,先说说微信小程序框架(MINA) 小程序开发框架的目标是通过尽可能简单.高效的方式让开发者可以在微信中开发具有原生APP体验的服务. 框架提供了自己的视图层描述语言WXML和WXSS, ...
- 微信小程序开发:Flex布局
微信小程序页面布局方式采用的是Flex布局.Flex布局,是W3c在2009年提出的一种新的方案,可以简便,完整,响应式的实现各种页面布局.Flex布局提供了元素在容器中的对齐,方向以及顺序,甚至他们 ...
- 微信小程序开发教程(八)视图层——.wxml详解
框架的视图层由WXMKL(WeiXin Markup language)与WXSS(WeiXin Style Sheet)编写,由组件进行展示. 对于微信小程序而言,视图层就是所有.wxml文件与.w ...
- 微信小程序开发系列二:微信小程序的视图设计
大家如果跟着我第一篇文章 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 一起动手,那么微信小程序的开发环境一定搭好了.效果就是能把该小程序的体验版以二维码的方式发送给其他朋友使用. 这个系列 ...
- 【微信小程序开发•系列文章六】生命周期和路由
这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...
- 微信小程序开发的基本流程
微信小程序开发的基本流程 一,微信小程序简介 1,微信小程序简称小程序,张小龙在微信公开课 Pro 上发布的小程序正式上线,时间是2017年1月9日. 2,微信小程序这个词可以分解为“微信”和“小程序 ...
- 微信小程序开发(1) 天气预报
本文介绍如何使用微信小程序开发天气预报功能. 一.项目文件列表 二.小程序配置 使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. ...
- 微信小程序开发1_资料收集
[前言] 小程序 [一.资料] 微信官网 开发文档.工具 等 https://mp.weixin.qq.com/cgi-bin/wx [二] 创建小程序和编辑代码,先安装 开发者工具 ,根据所使用的操 ...
- 微信小程序开发(五)开发框架MINA
微信团队为小程序提供的框架命名为MINA应用框架.MINA框架通过封装微信客户端提供的文件系统.网络通信.任务管理.数据安全等基础功能,对上层提供一整套JavaScript API,让开发者能够非常方 ...
随机推荐
- Python multiprocessing
 推荐教程 官方文档 multiprocess各个模块较详细介绍 廖雪峰教程--推荐 Pool中apply, apply_async的区别联系 (推荐)python多进程的理解 multiproce ...
- mac配置变量失败导致ls命令都失效
1.在命令行中输入 export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 这样可以保证命令行命令暂时可以使用.命令执行完之后先不要关闭终端 ...
- Linux代理搭建TinyProxy
操作系统:阿里云CentOS 7.4 64位 安装方法: yum install tinyproxy 配置: vi /etc/tinyproxy/tinyproxy.conf Port 8888 // ...
- python学习第34天
# 互斥锁# 进程之间的数据共享 # 关于数据安全的问题# 进程池(自己了解,后面线程部分还会讲) # from multiprocessing import Pool# 线程的概念 (面试的重点)# ...
- python学习之re (?P...)通过关键字获取组以及( P=name)
和其他的RE表达式一样,但是匹配的子串可以通过group的名字 name来获取.即 result.group('name') (提示,字符串数字都是常量,所以关键字都可以被视为整型(hash结果) ...
- RCNN论文学习
[Rich feature hierarchies for accurate object detection and semantic segmentation] Abstract 论文的方 ...
- JAVA第二次实训作业
1.一维数组的创建和遍历. 声明并创建存放4个人考试成绩的一维数组,并使用for循环遍历数组并打印分数. 要求: 首先按“顺序”遍历,即打印顺序为:从第一个人到第四个人: 然后按“逆序”遍历,即打印顺 ...
- Linux下创建共享文件夹
1,查看ip 地址 ifconifg: 2,查看是否安装samba服务器,rpm -qa | grep samba: 3,如果有该服务器,启动 service smb start,否则进行安装 yum ...
- PHP实现多维数组按指定值排序
主要用到的PHP函数 array_multisort() .先实现指定多维数组一个字段排序 根据二维数组的id值来排序,转换后的数组格式如下: function arraySortByOneField ...
- EF|CodeFirst数据并发管理
在项目开发中,我们有时需要对数据并发请求进行处理.举个简单的例子,比如接单系统中,AB两个客服同时请求处理同一单时,应该只有一单请求是处理成功的,另外一单应当提示客服,此单已经被处理了,不需要再处理. ...