🚀WXML语法:带你进入前端开发的快车道!

简介: 【2月更文挑战第3天】

WXML

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


数据绑定

WXML 中的动态数据均来自对应js文件中 Page 的 data。

数据绑定就是通过双大括号({{ }})将变量包起来,在wxml页面里将数据值显示出来。

简单绑定

<!--wxml-->
<view> {{message}} </view>
// page.js
Page({
  data: {
    message: 'Hello MINA!'
  }
})

组件属性绑定

它是将data 里的数据绑定到微信小程序的组件上。

<!--wxml-->
<view id="item-{{id}}"></view>
// page.js
Page({
data:{
id:0
}
})

控制属性绑定

它用来进行if语句条件判断,如果条件满足,则执行,否则反之。

<!--wxml-->
<view wx:if="{{condition}}"> </view>
Page({
  data: {
    condition: true
  }
})

关键字绑定

常用于组件的一些关键字

像复选框组件一样,checked 关键字如果为 TRUE,则代表复选框选中,如果等于FALSE,则代表不选中复选框。

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

条件渲染

wx:if 判断单个组件

判断是否需要喧染该代码块

<!--wxml-->
<view wx:if="{{view == 'WEBVIEW'}}"> WEBVIEW </view>
<view wx:elif="{{view == 'APP'}}"> APP </view>
<view wx:else="{{view == 'MINA'}}"> MINA </view>
// page.js
Page({
  data: {
    view: 'MINA'
  }
})

block wx:if判断多个组件

<block wx:if="{{true}}">
<view>flag1</view>
<view>flag2</view>
</block>

<block/>不是一个组件,他是一个包装元素,不会在页面做任何喧染,只接受控制属性。

<button bindtap="change_color">横条变色</button>
<block wx:if="{{b==true}}">
<view class="bg_green"></view>
</block>
<block wx:elif="{{b==false}}">
<view class="bg_blue"></view>
</block>
Page({
  data:{
    b:false
    },
    change_color:function(){
      var ab=this.data.b;
      this.setData({
        b:!ab
      })
    }
})
.bg_green{
  height: 100px;
  background-color: green;
}
.bg_blue{
  height: 100px;
  background-color: blue;
}

运算

三元运算

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

数学运算

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

逻辑判断

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

字符串运算

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

数据路径运算

<view>{{object.key}}{{arr[0]}}</view>
Page({
data:{
object:{
key:'nihao'
},
arr:['hello']
}
})

列表渲染

wx:for 列表渲染单个组件

在组件上使用wx:for控制属性绑定一个数组,即可使用数组中的各项的数据重复渲染该组件。

<view wx:for="{{array}}">
{{index}}:{{item.message}}
</view>
等价于
<view wx:for="{{array}}" wx:for-index="idx"
 wx:for-item="itemName">
{{idx}}:{{itemName.message}}
</view>
Page({
data:{
array:[
{
message:'第0个元素'
},{
message:'第1个元素'
}
]
}
})

block wx:for列表渲染多个组件

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

wx:key指定唯一标识符

如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己得特征和状态,需要使用wx:for来指定列表中的项目的唯一标识符。

<input/>中输入的内容
<switch/>中选中的状态

<switch wx:for="{{objectArray}}" wx:key="unique">{{item.id}}</switch>
Page({
data:{
objectArray:[
{id:5,unique:"five"},
{id:4,unique:"four"},
{id:3,unique:"three"}
]
}
})

如果不提供wx:key,会有一个warning,如果明确知道该列表是静态的,或者不必关注其顺序,可以选择忽略。

目录
相关文章
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`&lt;ul&gt;`嵌套`&lt;li&gt;`)、有序列表(`&lt;ol&gt;`嵌套`&lt;li&gt;`)和定义列表(`&lt;dl&gt;`嵌套`&lt;dt&gt;`和`&lt;dd&gt;`)。
292 20
|
JavaScript 前端开发 API
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(三)
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(三)
722 1
|
存储 前端开发 JavaScript
【前端学JAVA】有手就会!10min快速入门java的基础语法(2)
【8月更文挑战第8天】10min快速入门java的基础语法
211 2
【前端学JAVA】有手就会!10min快速入门java的基础语法(2)
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
97 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
|
前端开发 程序员 C++
【前端web入门第一天】01 开发环境、HTML基本语法文本标签
本文档详细介绍了HTML文本标签的基础知识。首先指导如何准备开发环境,包括安装VSCode及常用插件;接着全面解析HTML的基本结构与标签语法,涵盖从基本骨架搭建到注释的使用,以及标题、段落、换行和平行线、文本格式化等标签的具体应用,适合初学者循序渐进地掌握HTML。
238 3
|
存储 前端开发 JavaScript
前端学 Ruby:熟悉 Ruby 语法
前端学 Ruby:熟悉 Ruby 语法
145 0
|
JSON JavaScript 前端开发
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(四)完结撒花✿✿ヽ(°▽°)ノ✿
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(四)完结撒花✿✿ヽ(°▽°)ノ✿
716 0
|
缓存 JavaScript 前端开发
前端框架与库 - Vue.js基础:模板语法、数据绑定
【7月更文挑战第14天】Vue.js 是渐进式框架,以简洁API和高效数据绑定知名。本文聚焦模板语法与数据绑定,解释常见问题和易错点,助力初学者避坑。模板语法中,{{ expression }} 用于渲染值,v-bind/: 用于动态绑定属性。数据绑定涉及文本、属性和事件,注意v-model适用于表单元素,计算属性有缓存。理解正确用法,借助文档和IDE,可提升开发质量和效率。善用Vue.js,打造响应式UI。
551 4
|
前端开发 JavaScript 程序员
前端 JavaScript 的 _ 语法是个什么鬼?
前端 JavaScript 的 _ 语法是个什么鬼?
122 0
|
前端开发 JavaScript Java
【前端技术】 ES6 介绍及常用语法说明
【前端技术】 ES6 介绍及常用语法说明
241 4

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
  • 2
    前端工程化演进之路:从手工作坊到AI驱动的智能化开发
  • 3
    Vue 3 + TypeScript 现代前端开发最佳实践(2025版指南)
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
  • 下一篇
    oss云网关配置