• 微信小程序视图层介绍及用法


    一. 视图层

    WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件事件系统,可以构建出页面的结构。

    1.1. 数据绑定

    1.1.1. 普通写法

    <view> {{ message }} </view>
    Page({
      data: {
        message: 'Hello MINA!'
      }
    })
    

    1.1.2. 组件属性

    简直和上面没区别啊

    <view id="item-{{id}}"> </view>
    Page({
      data: {
        id: 0
      }
    })
    

    1.1.3. bool类型

    不要直接写 checked="false",其计算结果是一个字符串

    <checkbox checked="{{false}}"> </checkbox>
    

    1.2. 运算

    1.2.1. 三元运算

    hidden 隐藏属性,true为隐藏标签

    <view hidden="{{flag ? true : false}}"> Hidden </view>
    

    1.2.2. 算数运算

    <view> {{a + b}} + {{c}} + d </view>
    Page({
      data: {
        a: 1,
        b: 2,
        c: 3
      }
    })
    

    1.2.3. if 逻辑判断

    如果length大于5,标签显示,否则不显示

    <view wx:if="{{length > 5}}"> </view>
    

    1.2.4. 字符串运算

    <view>{{"hello" + name}}</view>
    Page({
      data:{
        name: 'MINA'
      }
    })
    

    1.2.5. 注意

    花括号和引号之间如果有空格,将最终被解析成为字符串

    1.3. 列表渲染(数组渲染)

    1.3.1. wx:for

    项的变量名默认为 item wx:for-item 可以指定数组当前元素的变量名

    下标变量名默认为 index wx:for-index 可以指定数组当前下标的变量名

    <view wx:for="{{array}}">
      {{index}}: {{item.message}}
    </view>
    Page({
      data: {
        array: [{
          message: 'foo',
        }, {
          message: 'bar'
        }]
      }
    })
    

    1.3.2. wx:for

    渲染一个包含多节点的结构块 block最终不会变成真正的dom元素

    <block wx:for="{{[1, 2, 3]}}">
      <view> {{index}}: </view>
      <view> {{item}} </view>
    </block>
    

    1.3.3. wx:key

    一般for循环都会添加wx:key属性,提高效率使用的

    <view wx:for="{{array}}" wx:key="index">
    {{index}}:{{item.message}}
    </view>
    

    1.4. 条件渲染

    1.4.1. wx:if

    在框架中,使用 wx:if="{{condition}}" 来判断是否需要渲染该代码块:

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

    1.4.2. hidden

    <view hidden="{{condition}}"> True </view>
    

    类似 wx:if

    频繁切换 用 hidden

    不常使用 用 wx:if

    二、 WXSS样式文件

    2. WXSS

    WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。

    与 CSS 相比,WXSS 扩展的特性有:

    • 尺寸单位

    • 样式导入

    2.1. 尺寸单位

    • rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
    设备 rpx换算px (屏幕宽度/750) px换算rpx (750/屏幕宽度)
    iPhone5 1rpx = 0.42px 1px = 2.34rpx
    iPhone6 1rpx = 0.5px 1px = 2rpx
    iPhone6 Plus 1rpx = 0.552px 1px = 1.81rpx

    建议: 开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。

    注意: 在较小的屏幕上不可避免的会有一些毛刺,请在开发时尽量避免这种情况。

    2.2. 样式导入

    使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束。

    示例代码:

    /** common.wxss **/
    .small-p {
      padding:5px;
    }
    /** app.wxss **/
    @import "common.wxss";
    .middle-p {
      padding:15px;
    }
    

    2.3. 内联样式

    框架组件上支持使用 style、class 属性来控制组件的样式。

    • style:静态的样式统一写到 class 中。style 接收动态的样式,在运行时会进行解析,请尽量避免将静态的样式写进 style 中,以免影响渲染速度。
    <view style="color:{{color}};" />
    
    • class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上.,样式类名之间用空格分隔。
    <view class="normal_view" />
    

    2.4. 选择器

    目前支持的选择器有:

    选择器 样例 样例描述
    .class .intro 选择所有拥有 class="intro" 的组件
    #id #firstname 选择拥有 id="firstname" 的组件
    element view 选择所有 view 组件
    element, element view, checkbox 选择所有文档的 view 组件和所有的 checkbox 组件
    ::after view::after 在 view 组件后边插入内容
    ::before view::before 在 view 组件前边插入内容

    2.5. 全局样式与局部样式

    定义在 app.wxss 中的样式为全局样式,作用于每一个页面。在 page 的 wxss 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 app.wxss 中相同的选择器。

  • 相关阅读:
    Roads in the North
    Labyrinth
    英语写作(二)
    语法长难句笔记
    英语写作(一)
    MySQL笔记(二)
    MySQL笔记(一)
    Mybatis简单使用与配置
    Mybatis映射文件
    什么是serializable接口?
  • 原文地址:https://www.cnblogs.com/guapitomjoy/p/12044136.html
Copyright © 2020-2023  润新知