WX小程序项目开发(2-组件封装传值事件绑定

294 阅读3分钟

what why how 是什么为什么 怎么样

wxs 与 js 区别?

都是写页面相关逻辑的 为什么有的在js文件里 有的在wxs里?

首先遇到的一个就是有一个类似过滤器的需求,这里就不能在wxml里使用js文件里的fun

这里就需要wxs

图片.png 官方解释如下:但是不是很理解

  1. wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
  2. wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。
  3. wxs 的运行环境和其他 javascript 代码是隔离的,wxs 中不能调用其他 javascript 文件中定义的函数,也不能调用小程序提供的API。
  4. wxs 函数不能作为组件的事件回调。
  5. 由于运行环境的差异,在 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等。

组件抽取

图片.png 抽离出去,再用到的时候,就需要考虑数据的传递了

图片.png 用的时候和vue一样,需要注册,但是这个注册要在json里注册

图片.png

传递数据

图片.png

如果用了flex布局,抽离前正常,抽离后就可能抽风

图片.png

解决办法:

给每个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-" 的自定义属性。

www.w3school.com.cn/tags/att_gl…


图片.png