微信小程序视图层、wxml语法、template模板

111 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

顺便复习一下微信小程序其它小的知识点。

调用wx对象的路由接口实现页面切换

- wx.navigateTo(option)navigate属性值,option有一个属性event,可以获得两个页面之间通信的数据

  • wx.redirectTo(option)
  • wx.switchTab(option)
  • wx.reLaunch(option)
  • wx.navigateBack(option)

以上每一个方法的参数对象,都有如下属性: url:‘’跳转到的页面路径 success:function(){}接口调用成功的回调函数 fail:function(){}接口调用失败的回调函数 complete:(){}接口调用结束后的回调,不管跳转成功、还是失败

视图层 View

框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。

将逻辑层的数据反映成视图,同时将视图层的事件发送给逻辑层。

WXML(WeiXin Markup language) 用于描述页面的结构。

WXS(WeiXin Script) 是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

WXSS(WeiXin Style Sheet) 用于描述页面的样式。

组件(Component)是视图的基本组成单元。

wxml语法

数据绑定:WXML中的动态数据均来自对应的pagedata。 使用{{}}进行数据绑定 ,同时在{{}}还可以写表达式,以及在属性值中绑定数据,也需要在双引号中使用{{}}

wx:for的使用

  1. wx:for-index=""给数组索引起别名
  2. wx:for-item=""给数组元素起别名
  3. 给元素设置key值时,直接写id就可以,不需要写item.id,或者写*this*this代表以数组的每一项元素为索引。
  4. 如果wx:for="hello"的话,会把hello转成字符串数组;
  5. 注意{{}}不能和""之间有空格
wx:for="{{array}}  "//这里不能有空格

<block>可以把好几个标记放在一起,作为一部分,相当于vue里的template <block/> 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。

<block>
   <view>aaa</view>
   <view>bbb</view>
</block>

wx:if="{{show}}"的使用 等同于v-if={{show}}

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

hidden="{{show}}" 等同于v-show={{show}}

<template>的使用

<template name="myTem">
    <view>hello</view>
    <view>world</view>
</template>
<template is="myTem" data="{{arr:stuList}}"></template>

data的值必须是一个对象形式

import只能引入<template>生成的模板

  • 引入模板 <import src="/pages/index/index.wxml"/>
  • 调用 <template is="myTem" data="{{arr:[1,2,3,4]}}"> 不可以跨层级使用模板,必须谁想用谁就要引入

include用来引入除了模板以外的代码

  • 用法:<include src="/pages/home/home.wxml">,这样的话,当前页面就会有home页面的内容

下面这张图是ind_son.wxml文件里的模板代码

1.png

下面这张图是引入了上面ind_son.wxml的模板stu,并进行了使用

2.png

关于<template>模板的使用写的可能比较墨迹,但是希望对大家能有所帮助。