注意(来自官方文档)

  1. wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
  2. wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。
  3. wxs 的运行环境和其他 javascript 代码是隔离的,wxs 中不能调用其他 javascript 文件中定义的函数,也不能调用小程序提供的API。
  4. wxs 函数不能作为组件的事件回调。
  5. 由于运行环境的差异,在 iOS 设备上小程序内的 wxs 会比 javascript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异。
举个例子,在wxs出来之前,如果我们要连接一个数组的内容并显示在wxml中,我们需要通过循环连接数组的每一项:

.wxml

  
  1. <view>
  2. <block wx:for="{{names}}" wx:key="item">
  3. {{item}}
  4. </block>
  5. </view>

.js

  
  1. Page({
  2. data: {
  3. names:[
  4. 'Tom',
  5. 'Peter',
  6. 'Gray',
  7. 'Lisa'
  8. ]
  9. },
  10. })

或者先在js中连接好,放在data中,再显示在wxml中: 
.wxml

  
  1. <view>
  2. {{content}}
  3. </view>

.js

  
  1. Page({
  2. data: {
  3. content:"",
  4. names:[
  5. 'Tom',
  6. 'Peter',
  7. 'Gray',
  8. 'Lisa'
  9. ]
  10. },
  11. onLoad(options){
  12. let content = this.data.names.join(" ")
  13. this.setData({
  14. content
  15. })
  16. }
  17. })

有了wxs后,我们可以直接在wxml完成:

.wxml

  
  1. <wxs module="util">
  2. var joinArray = function (array) {
  3. return array.join(' ')
  4. }
  5. module.exports = {
  6. joinArray: joinArray
  7. }
  8. </wxs>
  9. <view>
  10. {{util.joinArray(names)}}
  11. </view>

或者将工具函数保存为单独的文件,通过引入来使用: 
/src/wxs/common.wxs

  
  1. var joinArray = function (array) {
  2. return array.join(' ')
  3. }
  4. module.exports = {
  5. joinArray: joinArray
  6. }

/pages/index/index.wxml

  
  1. <wxs src="../../src/wxs/common.wxs" module="util" />
  2. <view>
  3. {{util.joinArray(names)}}
  4. </view>

引入的时候,wxs标签src填写相对路径(绝对路径无效),module指定名字。

我们也可以将页面中的一些常量放在wxs中:

  
  1. var MAX_COUNT = 19
  2. module.exports = {
  3. MAX_COUNT: MAX_COUNT
  4. }

总结:

  • WXS增强了wxml的功能,相当于页面中的脚本语言,我们可以将比如检查手机格式的函数放在wxs中来使用(根据是否正确来改变相应的样式),而不用跑到在js中去检查。

需要注意的地方:

  • wxs目前似乎并不支持ES6(至少let不能使用)
  • wxs文件不能被js文件引用。wxs文件能引用wxs文件。

参考:
微信小程序WXS官方文档

微信小程序:新功能WXS解读(2017.08.30新增)相关推荐

  1. python开发小程序拼团_微信小程序新功能,正合适开发拼团类小程序|明智科技...

    1.分享 微信小程序的任何一个页面都可以增加分享功能,用户可以把小程序便捷的分享给通讯录的好友和微信群.但不能分享到朋友圈. 也可以进一步理解为小程序开发者可以创造一种诱导用户分享给好友和微信群的应用 ...

  2. 微信 php收藏功能实现,关于微信小程序收藏功能的实现

    这篇文章主要介绍了微信小程序收藏功能的实现代码,基本功能是点击收藏后显示已收藏,在另一个页面出现目前点击收藏的项目.需要的朋友可以参考下 需求 点击收藏后显示已收藏,在另一个页面出现目前点击收藏的项目 ...

  3. 小程序能打开html页面,小程序新功能直接打开网页

    原标题:小程序新功能直接打开网页 喜讯小程序终于又开放新功能了,小程序的功能越来越强大了. 我想这个功能不管对对商家还是对开发人员都是非常好的功能,因为可以打开网页代表他可以链接更多,小程序最多可以关 ...

  4. 智慧物业小程序_物业小程序物业微信小程序目前功能最全的物业小程序

    原标题:物业小程序物业微信小程序目前功能最全的物业小程序 以物业管理为核心,打造智慧社区云微信小程序管理平台,已入驻腾讯海纳社区,物业微信小程序,解决传统物业管理难,乱差的问题,利用微信小程序提供一整 ...

  5. 微信小程序要这样去解读

    微信小程序要这样去解读 九个月之前张小龙的一次公开演讲第一次提到应用号,今天终于以小程序的名字正式对外小范围公测,只有200个邀请名额,我知道你肯定没有被翻牌子,我也没有.不管是朋友圈.订阅号.服务号 ...

  6. 视频教程-10分钟实现微信小程序支付功能-微信开发

    10分钟实现微信小程序支付功能 码农一枚,非著名全栈开发人员.分享自己的一些经验,学习心得,希望后来人少走弯路,少填坑. 多年全栈开发经验,擅长小程序,java,安卓,web前端开发. 邱石 ¥19. ...

  7. 三步教你开通微信小程序直播功能

    3月8日,微信官方举办了 "女神节"微信小程序直播的活动,联合近千品牌小程序直播首秀,当天,每个用户平均观看直播时间超过了8分钟,人均点赞数达到了280次,分享次数最高的直播间达到 ...

  8. 微信小程序插件功能页开发详细流程

     有问题可以扫码加我微信,有偿解决问题.承接小程序开发. 微信小程序开发交流qq群   173683895  . 526474645 : 正文: 关于新出的微信小程序插件功能页做一下记录,希望能帮到大 ...

  9. 微信小程序php后台支付,微信小程序 支付功能实现PHP实例详解

    微信小程序 支付功能实现PHP实例详解 前端代码: wx.request({ url: 'https://www.yourhost.com/weixin/WeiActivity/payJoinfee' ...

  10. python个人微信支付接口_Python实现微信小程序支付功能

    正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...

最新文章

  1. 分布式服务框架 Zookeeper(二)官方介绍
  2. Android Studio 中的FindBugs插件使用,轻松帮你发现Bug (转)
  3. Android使用ActionBar和ViewPager切换页面
  4. php 判断字符串是不存在json中
  5. thinkphp+ajax无刷新分页并加载显示图片
  6. 微软超融合私有云测试28-SCDPM2016部署之SCDPM基础配置(添加备份介质、推送代理)...
  7. android方块密码输入框,Android仿微信/支付宝的方块密码输入框
  8. 构图之法——9条构图小贴士
  9. java file 其他电脑上_将MultipartFile转换为java.io.File而不复制到本地计算机
  10. Linux 虚拟机忘记密码解决办法
  11. 【秋色动人xp情侣主题】
  12. python blp模型 估计_BLP模型
  13. oracle sqlldr命令6,oracle sqlldr命令
  14. 遥感资源大放送(下)| 11 个经典遥感数据集
  15. 什么是有氧运动?什么是无氧运动?哪个减肥效果更好?
  16. STGNN(www 2020)论文总结
  17. 新项目筹划中。。。。
  18. 微信小程序 帮你算月供
  19. 【弄nèng - Activiti6】Activiti6入门篇(十六)—— 信号中间事件
  20. 学校校园学生信息管理系统 毕业设计毕业源码毕业论文开题报告参考(1)功能概要

热门文章

  1. 计算机在现代工作中的应用,浅论计算机在现代管理中应用
  2. ​我的第三本译作《机器学习即服务》上架啦
  3. OC正式协议和非正式协议
  4. 在Git上如何强推代码规范
  5. 人工智能会否让人类失业?新职业“指令师”即将诞生
  6. GO语言 | go work 神一般的管理 多个module没烦恼
  7. 安卓全屏显示创建activity-land资源找不到的问题
  8. 虚拟服务器怎么突破磁盘2t,创建一个拥有超过2T数据盘的Windows虚拟机
  9. unity语音聊天--亲加通讯云(Android/iOS)---ios
  10. qlabel可以选中吗_QLabel自定义类实现点击效果以及鼠标掠过字体的颜色变化效果...