微信小程序入门:详解wxml和wxss

2025-12-13 0 352

今天我们具体学习下Pages文件夹下的文件与小程序的配置又什么不同:

首先介绍小程序的框架,MINA框架中有四种类型的文件,其中json文件仅仅是小程序的配置:

微信小程序入门:详解wxml和wxss

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

WXML不同于网页开发xml的就是里面的组件,因为官网已经介绍的很清楚了,这里就不介绍了,提供链接:https://mp.weixin.qq.com/debug/wxadoc/dev/component/

用以下一些简单的例子来看看 WXML 具有什么能力: 官方链接:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/

1 数据绑定:

利用大括号{{ text }}这样的格式来进行信息的绑定,我们只需要在js文件的data属性中加上 text代表的数据。

例如:

在.wxml文件中: {{ name }}

在.js中配置:

data{

name:“Wechat”

}

注意关键字 true和false 必须是这样使用

特别注意:不要直接写checked=\”false\”,其计算结果是一个字符串,转成 boolean 类型后代表真值。

2 列表渲染 :

利用wx:for 实现对数组进行循环展示时候使用,wx:for-item指定数组当前元素的变量名 wx:for-index制定数组当前元素的下标 0,1

或者是直接在for循环的标签内部:{{item}} {{index}}同上面的功能一样的 例如:

在index.js文件中设置data数据 定义一个array数组:

微信小程序入门:详解wxml和wxss

我们在wxml文件中利用wx:for把数据实时渲染上去:

微信小程序入门:详解wxml和wxss

编译之后的结果:

微信小程序入门:详解wxml和wxss

上面我们可以看出{{ item }}和wx:for-item=“myitem”具有相同作用:都是代表array数组的item ,但是我们可以自定义item名称,自定义的名称一目了然。

wx:key当数据改变并且促发到了界面的渲染时候 在小程序进行数据渲染的时候会把去会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,已确保他们保存的状态

如果有switch checkbox等需要保存状态的组件时 需要带有key关键值 用来保存之前的状态 。

3 条件渲染:

wx:if=\”{{hidden}}\” 判断里面hidden的值进行判断,一般情况下都是用来判断是否首先是某个组件,通过js中的逻辑代码,动态控制组件是显示还是隐藏

如果需要一次性判断多个条件 使用block标签

view1

view2

<\\block>

4 模板:模板其实就是android中的base类 也就是通用 例如每个界面的头部相同的话,只需要引用template就可以了。

定义模板

使用name属性,作为模板的名字。然后在内定义代码片段,如:

{{index}}:{{msg}}

Time:{{time}}

使用模板

使用 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入,如:

Page({ data: { item: { index:0, msg:\’this is a template\’, time:\’2016-09-15\’} }})

is 属性可以使用 Mustache 语法,来动态决定具体需要渲染哪个模板:

odd

even

注意这个是在同一个mxml文件中的template 自我感觉没有什么意义,一般情况下这个都是用来设置header和footer,定义在pages文件夹之外。

在下面的引入中会有使用外界的template

5 事件: 重点

事件可以用来对视图层和逻辑层进行通信的方式

事件也可以将用户的行为传递到逻辑层做处理 也就我们所说的点击事件

事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。

事件对象可以携带额外信息,如 id, dataset, touches。 页面跳转时候都会发送信息过去。

点击事件可以分为2类:

1:冒泡事件: 点击事件会向点击组件的父类进行传递

2:非冒泡事件:点击事件不会向点击组件的父类传递

WXML的冒泡事件列表:

类型触发条件

touchstart手指触摸动作开始

touchmove手指触摸后移动

touchcancel手指触摸动作被打断,如来电提醒,弹窗

touchend手指触摸动作结束

tap手指触摸后马上离开

longtap手指触摸后,超过350ms再离开

注:除上表之外的其他组件自定义事件如无特殊申明都是非冒泡事件,如submit事件,input事件,scroll事件,(详见各个组件)

在事件的绑定有2种绑定方式 1:bind 2:catch 但是bind事件不会阻止冒泡事件向上的传递。但是catch事件会阻止冒泡事件向上传递

outerview

middleview

innerview

微信小程序入门:详解wxml和wxss

我点击middle view时候出现:

微信小程序入门:详解wxml和wxss

我点击inner view

微信小程序入门:详解wxml和wxss

从上面可以说明 catch绑定事件,是不会向父级目录传递的,但是inner view使用bind绑定就向父级目录传递了。

事件对象:

如无特殊说明,当组件触发事件时,逻辑层绑定该事件的处理函数会收到一个事件对象。

bind:function(e){

console.log(e)

}

微信小程序入门:详解wxml和wxss

dataset

在组件中可以定义数据,这些数据将会通过事件传递给 SERVICE。 书写方式: 以data-开头,多个单词由连字符-链接,不能有大写(大写会自动转成小写)如data-element-type,最终在 event.target.dataset 中会将连字符转成驼峰elementType。

在使用过程中很简单,只需要在wxml中的组件中加入 data-id=“”

微信小程序入门:详解wxml和wxss

这个时候在点击事件的currentTarget /dataset目录下就有了一个id的属性 可以直接使用 e.currentTarget.dataset.id获取id中的值,其实也就是传递数据的一种方式

微信小程序入门:详解wxml和wxss

6 引入

在小程序里面对于框架的引用有着import和include 其实都是对框架的引用

在import一般和template使用 引入框架 例如:

在下面我们设置了2个template模块,一个是header 一个是footer

微信小程序入门:详解wxml和wxss

接下来是我们的引用了:

微信小程序入门:详解wxml和wxss

在引入使用src属性定义路径 注意路径格式: ../../template/template.wxml

这里的第一个\” ../ \”回到父级目录,这里是pages目录下, 第二个“../”这里是回到了pages目录 而我们的template和pages在用同一个目录下,

这样就可以直接进入template

利用\” is \”确定是使用那个template data采用key-value的格式来设置数据 注意key必须和template中的一致 但是野可以直接在data属性中设置参数

上面的例子 header直接使用key-value进行赋值,在footer模板中使用data动态渲染赋值

注意template的作用域:

import只能使用引用的目录中的template 如果在A import B C import A 即使C import A 在C中也是不能使用B中的template

也就是说import不具备传递性

另外一种引入是 include标签 include标签就是将head.wxml中的布局复制过来 使用方式:

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

WXSS 用来决定 WXML 的组件应该怎么显示。

为了适应广大的前端开发者,我们的 WXSS 具有 CSS 大部分特性。 同时为了更适合开发微信小程序,我们对 CSS 进行了扩充以及修改。

对于初学者而言 这可以说是最难的,但是熟悉之后确实最简单的,因为着都是固定,不想业务逻辑动态改变。

与 CSS 相比我们扩展的特性有:

尺寸单位

样式导入

尺寸单位:

rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素

对于android开发的人而言其实很简单 也就是类似dp 设置的大小不会根据屏幕的大小改变而改变,根据屏幕的像素px来改变大小的,所以比例都是一样大小的。

内联样式

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

style:静态的样式统一写到 class 中。style 接收动态的样式,在运行时会进行解析,请尽量避免将静态的样式写进 style 中,以免影响渲染速度。

class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上.,样式类名之间用空格分隔。

全局样式与局部样式

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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 微信小程序入门:详解wxml和wxss https://www.zuozi.net/36290.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务