mustache(小胡子)语法{{}} 可以用在: 1. innerHtml(类似) 2. 元素的属性上 3. 不能用在标签名和属性名上 4. 可以直接使用字面量和简单的逻辑运算符
Page({ // 为页面提供数据 // data就是节目和逻辑之间的桥梁 data: { message: 'hello world', person:{ name: '张三', age: 18 }, viewClassName:'active' } }) <view class="container"> {{ message }} {{person.name}} - {{person.age}} <view class="tab {{ viewClassName }}"></view> <text>{{ 'hello' }}</text> <text>{{ 111 }}</text> <text>{{ 111 + 999 }}</text> <text>{{ 100 > 50 ? '是的' : '不是' }}</text> <!-- checked="false" 不起作用 --> <checkbox checked="{{ false }}"></checkbox> </view>基本的循环 wx:for
明确页面结构中的循环体删除多余的重复内容,只保留一个在剩下的这个上加上wx:for属性, 属性值等于要遍历的数据源,数据源必须是一个数组在这个标签(循环体)内部使用item代表当前被遍历的元素 给被遍历到的对象定义名称 wx:for-item 给遍历的下标(索引)定义名称 wx:for-index <!-- 列表循环--> <view wx:for="{{ todos }}" wx:for-item="todo" wx:for-index="i"> <text>{{ i }}</text> <checkbox checked="{{ todo.done }}"></checkbox> <text>{{ todo.name }}</text> </view> Page({ data: { todos: [ { name: 'JavaScript', done: false }, { name: 'HTML', done: true }, { name: 'CSS', done: true } ] } })this.setData() 是用来改变 data 中的数据,它与直接赋值的区别在于setData() 可以实现响应式的数据变化,即界面上的值也同时发生改变。
在框架中,使用 wx:if="" 来判断是否需要渲染该代码块:
<view wx:if="{{condition}}"> True </view>也可以用 wx:elif 和 wx:else 来添加一个 else 块:
<view wx:if="{{length > 5}}"> 1 </view> <view wx:elif="{{length > 2}}"> 2 </view> <view wx:else> 3 </view>block wx:if 因为 wx:if 是一个控制属性(wx:开头的),需要将它添加到一个标签上。如果要一次性判断多个组件标签,可以使用一个 <block/> 标签将多个组件包装起来,并在上边使用 wx:if 控制属性。
<block wx:if="{{true}}"> <view> view1 </view> <view> view2 </view> </block>注意: <block/> 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。
wx:if vs hidden
因为 wx:if 之中的模板也可能包含数据绑定,所以当 wx:if 的条件值切换时,框架有一个局部渲染的过程,因为它会确保条件块在切换时销毁或重新渲染。
同时 wx:if 也是惰性的,如果在初始渲染条件为 false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染。
相比之下, hidden 就简单的多,组件始终会被渲染,只是简单的控制显示与隐藏。
一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。
与 CSS 相比,WXSS 扩展的特性有:
尺寸单位样式导入尺寸单位:rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
设备rpx换算px (屏幕宽度/750)px换算rpx (750/屏幕宽度)iPhone51rpx = 0.42px1px = 2.34rpxiPhone61rpx = 0.5px1px = 2rpxiPhone6 Plus1rpx = 0.552px1px = 1.81rpx建议: 开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。
注意: 在较小的屏幕上不可避免的会有一些毛刺,请在开发时尽量避免这种情况。