WTF小程序之wxs
前言
对于从VUE过来的前端同学来说,见到小程序的第一眼一定是熟悉—感觉就像是把vue的单文件拆成了3个文件。但是,随着慢慢入坑。马上会发现,这样怎么不行?wxs文件又是什么鬼?template和vue的template一样吗?下面我们来一起探索一下。
wxs文件的写法
根据官方文档的说法,wxs是小程序的一套脚本语言,用于和wxml一起构成页面结构。就像js一样,你可以在wxml中借助标签写内联的代码,也可以单独把脚本写在wxs为后缀的文件中,见下面的例子:
在 HTML中的内联js
<script>console.log('hello world')</script>
在WXML中的内联wxs
<wxs module="m1">console.log('hello world')</wxs>
单独在文件中:
//hello.js
console.log("hello world")
//引入js
<script src="./hello.js"/>
//hello.wxs
console.log("hello world")
function foo(){}
module.exports = {foo:foo}
//引入wxs
<wxs src="./hello.wxs" module="m1">
但是别觉得wxs跟js就是一样的了。wxs实现了CommonJS规范,也就是说,你写在wxs文件或者标签中的函数需要导出后才能使用,而不是像js那样一个全局作用域。注意wxs标签多出的module属性,相当于 const m1 = require('./hello.wxs');然后你就可以在WXML中通过m1.foo来调用函数。另外,你可以在wxs中通过require引用别的wxs代码。
wxs的作用
如果不是因为{{}}中不能执行我写在Page({})参数对象中的函数,我可能都懒得去看wxs究竟是干什么用的
WTF小程序之wxs的更多相关文章
- 微信小程序的wxs语法与vue计算属性
微信小程序的wxs语法 可以当做vue的计算属性和vue filter 使用.因为wxs中的函数可以写在{{ }}中 . 例如: 可用在 <view>{{ foo() }}</v ...
- 【小程序】wxs使用
wxs使用 WXS(WeiXin Script)是小程序的一套脚本语言,结合WXML,可以构建出页面的结构. wxs可以说就是为了满足能在页面中使用js存在的,在wxml页面中,只能在插值{{ }}中 ...
- 小程序使用wxs解决wxml保留2位小数问题
1.出现溢出表现 从图中可以看到数字超出了很长长度.代码里面是如下这样的.为什么在0.35出现?或者一些相成的计算出现? 而 0.34却不会.(wap.0834jl.com) 0.41 也会出现,好像 ...
- 小程序使用wxs 解决wxml保留2位小数问题
1.出现溢出表现 从图中可以看到数字超出了很长长度.代码里面是如下这样的.为什么在0.35出现?或者一些相成的计算出现? 而 0.34却不会. 0.41 也会出现,好像是二进制运算出现结果. data ...
- WTF小程序之animation
目录 animation 的几个关键方法 step 方法 export 方法 如何实现 infinate 动画 小程序的 animation 有一套怪异的 API,既不符合 css 的 keyfram ...
- WTF小程序之原生遇见mpvue
事情是这样的,我们有一个原生(wxml,wxss,js,json)写的小程序,要加入一个新的模块,并且时间比较紧张.所以我们选择了采用mpvue开发一个分包(subpackage),加入到原生小程序中 ...
- WTF小程序之<web-view>
叨叨两句 昨天爬了一下午坑才出来的我向大家问好
- 微信小程序 WXS实现json数据需要做过滤转义(filter)
前言 最近有在做小程序开发,在开发的过程中碰到一点小问题,描述一下先. 本人在职的公司对于后台获取的 json 数据需要做过滤转义的很多,不同的状态码会对应不同的文字,但是在微信小程序中又没有类似 v ...
- 使用mpvue开发小程序教程(五)
在上一章节中,我们了解了组件的三个基本特性以及组件的基本使用方法.在实际的小程序开发中,我们应该以组件的思维去设计每个小程序的功能页面,对其进行合理的组件拆分,让每个部分都保持功能简洁.条理清楚.各司 ...
随机推荐
- Eclipse中使用Maven新建 Servlet 2.5的 SpringMVC项目
1.前言: 最近在学习SpringMVC框架,由于使用Eclipse创建的webAPP项目默认使用的还是比较旧的servlet2.3,而且默认使用的还是JDK1.5,所以便有一次开始了我的配置之路 2 ...
- JaveScript数组(JS知识点归纳五)
1.概念 a)作用--用于保存多个数据,便于对数据的使用 b)数组元素--数组中的数据 c)索引--数组中的元素按照下标(数值)的方式排列(从0 开始),依次递增(也有可能是字符串的类型--不用) d ...
- 新安装的soapui启动时报错及解决方法
今天新安装了soapui准备测试一下接口,结果安装成功后启动时报错:The JVM could not be started. The maximum heap size (-Xmx) might b ...
- Codeforces 777C Alyona and Spreadsheet
C. Alyona and Spreadsheet time limit per test:1 second memory limit per test:256 megabytes input:sta ...
- [bzoj2594][Wc2006]水管局长数据加强版 (lct)
论蒟蒻的自我修养T_T.. 和noi2014魔法森林基本一样...然而数据范围大得sxbk...UPD:这题如果用lct判联通的话可能会被卡到O(mlogm)..所以最好还是用并查集吧 一开始数组开太 ...
- HDU-1013九余数定理
题目传送门:HDU1013 九余数定理 //题目描述:给定一个数,要求你求出它的每位上的数字之和,并且直到每位上的数字之和为个位时候输出它 //输入:一个整数 //输出:题目描述的结果 //算法分析: ...
- JAVA多线程之CountDownLatch
前序: 上周测试给开发的同事所开发的模块提出了一个bug,并且还是偶现. 经过仔细查看代码,发现是在业务中启用了多线程,2个线程同时跑,但是新启动的2个线程必须保证一个完成之后另一个再继续运行,才能消 ...
- 修改mysql密码的四种方法
方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:my ...
- python列表二
比如说要交换两个的顺序,用中间变量temp即可,和java的方法一样 >>> mix[1, '小尹', 5, '小虎', 3.5, [1, 2, 2], '葫芦娃', 0, '1', ...
- 制作ssh互信的docker镜像
Dockerfile FROM ubuntu:16.04 # package RUN apt-get update; apt-get -y install ssh COPY ssh_config /e ...