what why how 是什么为什么 怎么样
wxs 与 js 区别?
都是写页面相关逻辑的 为什么有的在js文件里 有的在wxs里?
首先遇到的一个就是有一个类似过滤器的需求,这里就不能在wxml里使用js文件里的fun
这里就需要wxs
官方解释如下:但是不是很理解
- wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
- wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。
- wxs 的运行环境和其他 javascript 代码是隔离的,wxs 中不能调用其他 javascript 文件中定义的函数,也不能调用小程序提供的API。
- wxs 函数不能作为组件的事件回调。
- 由于运行环境的差异,在 iOS 设备上小程序内的 wxs 会比 javascript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异。 developers.weixin.qq.com/community/d…
wxs的限制
1.wxs中不能使用es6语法
2.wxs中有些对象的使用方法和js不同。例如js中的new Date(),在wxs中是getDate();js中的new RegExp(),在wxs中是getRegExp。
3.wxs中不能使用js里面的一些东西,例如生命周期,微信API等。
组件抽取
抽离出去,再用到的时候,就需要考虑数据的传递了
用的时候和vue一样,需要注册,但是这个注册要在json里注册
传递数据
如果用了flex布局,抽离前正常,抽离后就可能抽风
解决办法:
给每个item,也包裹一个view,让里面的item撑满view
监听滚动到底部、顶部
在官方文档中
框架接口 /页面 /Page
好多东西官方文档都有,可以多去查查
onReachBottom | function | | | 页面上拉触底事件的处理函数 |
监听item点击跳转详情页
1 内部监听,内部跳转
2 直接监听组件的点击
- 事件是视图层到逻辑层的通讯方式。
- 事件可以将用户的行为反馈到逻辑层进行处理。
- 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
- 事件对象可以携带额外信息,如 id, dataset, touches。
- 在组件中绑定一个事件处理函数。
如
bindtap,当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数。<view id="tapTest" data-hi="Weixin" bindtap="tapName"> Click me! </view>
- 在相应的Page定义中写上相应的事件处理函数,参数是event。
Page({ tapName: function(event) { console.log(event) } })
如果要在点击的时候,传递数据,这里补充一下data-* 属性
data-* 属性用于存储页面或应用程序的私有自定义数据。 data-* 属性赋予我们在所有 HTML 元素上嵌入自定义 data 属性的能力。
存储的(自定义)数据能够被页面的 JavaScript 中利用,以创建更好的用户体验(不进行 Ajax 调用或服务器端数据库查询)。
data-* 属性包括两部分:
- 属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至少一个字符
- 属性值可以是任意字符串
注释:用户代理会完全忽略前缀为 "data-" 的自定义属性。