WXS语法:

在传统的网页开发中, HTML 中是可以写 JavaScript 代码的,而在小程序中,是不允许在 WXML 文件中写 JavaScript 的,但是有些时候,我们需要在 wxml 中实现一些逻辑的处理。比如举个例子,我们渲染一个数字到 wxml 中,在 wxml 文件中根据这个数字来渲染具体星期几。这时候通过 wxml 文件中就做不了了,或者只能在 JavaScript 先计算好再渲染。示例代码如下:

Page({data: {day: 1},onLoad: function(options) {var weekday = "";switch (this.data.day) {case 1:weekday = "星期一";break;case 2:weekday = "星期二";break;case 3:weekday = "星期三";break;case 4:weekday = "星期四";break;case 5:weekday = "星期五";break;case 6:weekday = "星期六";break;case 7:weekday = "星期天";break;}this.setData({weekday: weekday});}
});

这时候小程序就提供了一个新的语法叫做 wxs 可以帮我们直接在 wxml 中解决。示例代码如下:

< wxs module = "index" >
var getWeekDay = function(day) {var weekday = "";switch (day) {case 1:weekday = "星期一";break;case 2:weekday = "星期二";break;case 3:weekday = "星期三";break;case 4:weekday = "星期四";break;case 5:weekday = "星期五";break;case 6:weekday = "星期六";break;case 7:weekday = "星期天";break;}return weekday;
}
module.exports.getWeekDay = getWeekDay; < /wxs>
<view>{{index.getWeekDay(day)}}</view >

wxs 可以理解为 javascript 的一个阉割版本。使用 wxs 的好处如下:

  1. 在 iOS 上,在 wxs 中代码执行效率是在 js 中执行的 2-20 倍。
  2. 可以把更多的逻辑在 wxml 文件中完成。
    wxs代码:

wxs 代码可以写在 wxml 文件中。也可以单独放在 .wxs 后缀的文件中。如果是写在 wxml 文件中,则必须要放在 wxs 标签中,如果是单独放在 .wxs 后缀文件中,就不需要放在 wxs 标签中了。并且必须要给 wxs 一个 module 属性,用来标记这个 wxs 的名称。以下是使用 .wxs 的语法。

// /pages/tools.wxs文件 <wxs module="tools"> var person = {
"username": "zhiliao",
"age": 18
}
module.exports = person; < /wxs>

以后想使用的时候,就直接在 wxml 代码中使用 wxs 来引用 wxs 文件。示例代码如下:

<wxs src="./.. / tools.wxs " module="tools " />
<view> {{tools.username}} </view>"

另外,我们在 wxs 中写完了代码,还需要导出才能够使用。使用 module.exports 即可导出。
require函数:
如果在一个 wxs 文件中,想引用另外一个 wxs 文件,那么可以使用 require 函数引用。示例代码如下:

// tools.wxs var person = {"username": "zhiliao","age": 18
}
module.exports.person = person;

在另外一个 wxs 文件中就可以进行引用了。示例代码如下:

var tools = require("./tools.wxs");
console.log(tools.person.username);

变量:

变量的定义跟 javascript 一致。

请查看:
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/02variate.html 。
注释:

注释使用 /注释/ 以及 //注释 的方式,

另外增加了一种 /* xxx 的方式,这种方式会把 /* 后的所有代码全部都注释了。
运算符:

请查看:
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/04operator.html 。语句:
包括有 if 语句、 for 循环语句、 while 循环语句、 switch 分支语句。
具体查看:
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/05statement.html 。

数据类型:

  • number : 数值
  • string :字符串
  • boolean:布尔值
  • object:对象
  • function:函数
  • array : 数组
  • date:日期
  • regexp:正则

其中每种数据类型的方法请参考:

https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/06datatype.html 。
内置类库:

wxs 提供了一些内置的类库,方便开发者调用。

具体请看:
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/07basiclibrary.html 。

wxs案例:

根据时间,来显示距离现在的时间间隔。

  1. 如果时间间隔小于1分钟以内,那么就显示“刚刚”
  2. 如果是大于1分钟小于1小时,那么就显示“xx分钟前”
  3. 如果是大于1小时小于24小时,那么就显示“xx小时前” 4.如果是大于24小时小于30天以内,那么就显示“xx天前”
  4. 否则就是显示具体的时间2017/10/20 16:15。

view和scroll-view: view:
视图容器。相当于是传统网页中的 div ,可以用来存放任何的其他子元素。

相关的属性请参考:

https://developers.weixin.qq.com/miniprogram/dev/component/view.html
scroll-view:

有时候我们的一些视图在手机指定的宽度和高度不够存放。那么可以放在 scroll-view 中。

设置横向滚动:

  1. 给 scroll-view 添加 scroll-x=“true” 属性。
  2. 给 scroll-view 添加 white-space:nowrap; 样式。
  3. 给 scroll-view 中的子元素设置为 display:inline-block; 。
    示例代码如下:
    index.wxml代码:
<scroll-view class='scroll-x-view' scroll-x><view class='scroll-view-item bg_red'></view><view class='scroll-view-item bg_blue'></view><view class='scroll-view-item bg_green'></view><view class='scroll-view-item bg_yellow'></view>
</scroll-view>

index.wxss代码:

.scroll - x - view {width: 100 % ;height: 100px;background: gray;white - space: nowrap;
}.scroll - x - view.scroll - view - item {width: 200px;height: 100px;
}.bg_red {background: red;
}.bg_blue {background: blue;
}.bg_green {background: green;
}.bg_yellow {background: yellow;
}

设置竖向滚动:

  1. 给 scroll-view 添加 scroll-y=“true” 属性。
  2. 给 scroll-view 设置高度。
    wxml 和 wxss 示例代码如下:
<scroll-view class='scroll-x-view' scroll-y><view class='scroll-view-item bg_red'></view><view class='scroll-view-item bg_blue'></view><view class='scroll-view-item bg_green'></view><view class='scroll-view-item bg_yellow'></view>
</scroll-view>
.scroll-x-view{   width: 100%;   height: 200px;   background: gray;
}
.scroll-x-view .scroll-view-item{   width: 100%;   height: 100px;
} .bg_red{   background: red;
}
.bg_blue{   background: blue;
}
.bg_green{   background: green;
}
.bg_yellow{   background: yellow;
}

scrolltoupper和scrolltolower事件:鼠标滚动到距离顶部或者左边、鼠标滚动到底部或者右边多少距离的时候会执行这个事件。默认的间隔是 50 像素。示例代码如下:

< scroll - view class='scroll-x-view' scroll - y bindscrolltoupper="scrollToUpper"><view style="height:1000px;"></view></scroll - view>Page({ scrollToUpper: function(event) { console.log(event); } });

bindscroll事件:

只要 scroll-view 发生了滚动,就会执行这个事件。

< scroll - view class = 'scroll-x-view'scroll - y bindscrolltoupper = "scrollEvent" > <view style = "height:1000px;" > </view>
</scroll - view > Page({scrollEvent: function(event) {console.log(event);}
});

微信小程序学习笔记(七)相关推荐

  1. 小程序 pagescrollto_微信小程序学习笔记(三)-- 首页及详情页开发

    一.常用组件 在上一个章节中讲解了封装请求数据的模块,在此处请求轮播图的数据 1.首页轮播图数据的请求以及渲染 1.1 轮播图数据的请求 pages/home/home.js import 2 使用组 ...

  2. 微信小程序学习笔记(1)

    微信小程序学习笔记 1.小程序代码结构 2.逻辑层和视图层 3. 小程序的宿主环境(通信模型.运行机制.组件.API) 4. 数据绑定和事件绑定 1.小程序代码结构 当开发者新建一个工程时,项目文件包 ...

  3. 微信小程序学习笔记一 + 小程序介绍 前置知识

    微信小程序学习笔记一 1. 什么是小程序? 2017年度百度百科十大热词之一 微信小程序, 简称小程序, 英文名 Mini Program, 是一种不需要下载安装即可使用的应用 ( 张小龙对其的定义是 ...

  4. 自己的微信小程序学习笔记【3】——第三方UI库Lin-Ui的加载及使用

    其他微信小程序的学习笔记 自己的微信小程序学习笔记[1]--小程序开发工具的使用及项目文件说明 自己的微信小程序学习笔记[2]--从零开始新建项目 文章目录 其他微信小程序的学习笔记 前言 一.Lin ...

  5. 微信小程序学习笔记(七)----简单文章推荐列表和分类图标的实现

    想要实现一个顶部是几篇纯文字的推荐文章,推荐文章下面是四个分类图标,具体实现出来是这个样子的,比较简单: 首先先来找一下素材,这几个图标是我在阿里巴巴图标库下载的,这里是下载地址: http://ww ...

  6. 微信小程序学习笔记(一)

    干货来袭 基础前言   微信⼩程序,简称⼩程序,英⽂名 Mini Program ,是⼀种不需要下载安装即可使⽤的应⽤,它实现 了应⽤"触⼿可及"的梦想,⽤⼾扫⼀扫或搜⼀下即可打开 ...

  7. 微信小程序-学习笔记6-组件

    基础内容组件:icon.text.progress <view class="container"><progress percent="20" ...

  8. 微信小程序学习笔记02:微信小程序注册

    文章目录 零.学习目标 一.小程序注册方法 1.注册 2.登录 二.小程序开发工具 1.下载开发工具 2.安装开发工具 3.启动开发工具 三.创建第一个小程序 1.启动开发者工具 2.新建项目 3.模 ...

  9. 微信小程序学习笔记01:微信小程序概述

    文章目录 零.学习目标 一.小程序的历史 二.如何访问小程序 1.线下扫码 2.微信搜索 3.公众号关联 4.好友推荐 5.历史记录 6.桌面访问 7.附近的小程序 三.小程序与HTML5和APP比较 ...

  10. 微信小程序学习笔记(7.16)

    事件绑定 类似于web开发中的 onclick,微信开发者工具中使用的 bindtap,bindinput之类的方法,其实都是封装的JavaScript 通过实验探究数据传递方法 写一个input标签 ...

最新文章

  1. python windows错误码
  2. kali 终端真透明
  3. 数据中心的“维稳之道”
  4. [转载]C#中各种计时器
  5. 【多线程高并发】深入浅出JMM-Java线程内存模型
  6. 大型企业多账号管理“安全心法”
  7. ghost网络克隆功能实现【批量】计算机操作【系统的安装】,网络学习(三十)通过ghost的网络克隆功能实现操作系统的分发...
  8. 巨杉数据库 CTO 王涛:新一代分布式数据库
  9. 蓝桥杯 算法训练 区间k大数查询
  10. 【数据结构笔记33】C实现:希尔排序、增量序列
  11. CCF201512试题
  12. 《Java安全编码标准》一2.9 IDS08-J净化传递给正则表达式的非受信数据
  13. 【元胞自动机】基于matlab元胞自动机甲板火灾下人群疏散【含Matlab源码 1291期】
  14. solidworks导出xml文件 (matlab打开)
  15. 技术架构图-Java技术栈
  16. 怎么才能写好技术文档——这是我的全部经验
  17. unity识别图片颜色并把颜色数量排序
  18. 如何防止黑客入侵服务器?
  19. flask上传图片解决方案
  20. FreeSwitch连接语音网关配置及使用场景

热门文章

  1. mysql1215_MySQL全面瓦解15:视图
  2. mysql了解jdbc_JDBC的连接mySql的基本知识
  3. 盘点 Serverless 架构的六个特质
  4. php自动加载指定类,PHP自动加载类-Java架构师必看
  5. 虚拟机上怎么配置mysql数据库_Linux虚拟机下安装配置MySQL
  6. Java内存模型深度解析:顺序一致性
  7. flutter 导航页面转换动画效果
  8. 探索ASP.NET Core中的IStartupFilter
  9. Unity5 官方教程笔记(2D Rogue Like)07 —— GUI
  10. 在VS2008中DataGridView控件里DataGridViewComboBoxColumn列的Bug