浅谈原生小程序

有句话说,会使用vue开发的程序员就会开发小程序,确实是这样,在我学习vue后,再去学习小程序时,感觉很好上手,因为很多语法都是类似的写法。当然,也有很多不一样的。

1.声明data:用过vue的朋友都知道,vue中声明data时,data必须是函数,不然会报错,原生的小程序就不是这样,直接 data: { }就ok了。
2.绑定数据:绑定动态属性时需要在属性的双引号里使用 {{ }}
3.列表循环:使用wx:for,在循环题内有隐藏的item代表当前项,index代表下标

// 例子
<view class="tab-item" wx:for="{{tabs}}" wx:key="{{index}}">{{item.text}}</view>
// wx:for="{{}}" 一定要和 wx:key="{{}}" 一起使用,否则会报错;而且在赋值时要使用 {{}},不然没效果。
// tabs 是data中声明的数据
data:{
  tabs: [
    {
      value: 1,
      text: '选项1'
    },
    {
      value: 2,
      text: '选项2'
    },
    {
      value: 3,
      text: '选项3'
    }
  ]
}

4.事件 事件处理函数在page里定义,和onLoad / data等同级

  • 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递
  • 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递

事件的写法:以bindcatch开头,然后跟上事件的类型,如bindtap、catchtouchstart
bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。
事件的传参:事件传参不能事件处理通过 () 来传递参数,在组件里面通过自定义属性data-xx="参数名称"来定义,在事件处理函数里通过 event.currentTarget.dataset 来获取参数
事件官方文档
5.修改data里面的数据
在vue中,修改data里面的数据,直接【 this.属性 】就可以修改了,可是小程序不一样,它需要通过【 this.setData({ data: newData }) 】来修改,访问data的中的数据用【 this.data.xx 】来访问;一开始学习小程序的时候,习惯了[vue](https://cn.vuejs.org/)的写法,总是写成 vue 的法,贼难受。


6.自定义组件

  • 创建组件
    组件开发,在现今特别流行,低耦合,复用性高,后期的维护也很友好
    在根目录下的components文件夹里创建一个空的文件夹,在微信开发者工具里右键 - 新建component - 输入 index 生成json wxml wxss js4个文件
  • 在页面上导入组件
    在导入的页面的配置文件json中配置 usingConponents:{ "自定义名称": "组件路径" }
  • 自定义组件属性传递
    在自定义组件里通过 propertis 来接收的属性
  • 自定义组件事件
    ** 首先,在调用组件标签通过bind:[事件名]=[事件处理函数],绑定事件;然后,在自定义组件里通过 this.triggerEvent("传递过来的事件名") **
    自定义组件

更多关注小程序官方文档

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # 传智播客vue 学习## 1. 什么是 Vue.js* Vue 开发手机 APP 需要借助于 Weex* Vu...
    再见天才阅读 3,629评论 0 6
  • vue概述 在官方文档中,有一句话对Vue的定位说的很明确:Vue.js 的核心是一个允许采用简洁的模板语法来声明...
    li4065阅读 7,275评论 0 25
  • 身体上的疲惫可以休整,那内心的懒惰如何自救呢?人很容易萎靡,又乐于沉迷,时间久了,以为自己生而孤僻。 1 自从丞先...
    莫里狸狸阅读 395评论 0 7
  • 姓名:冯进平 公司:上海晋名实业有限公司 六项精进221期 努力一组学员【日精进打卡第252天】 六项精进410...
    MaggieFeng1988阅读 303评论 0 0
  • 三九灸中药贴敷之后都应该注意哪些事项呢? 1.药物贴敷时间为3~6小时(儿童酌减,一般1~2小时),以局部皮肤温热...
    中康中医吕大夫阅读 730评论 0 0