微信小程序笔记

198 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第28天,点击查看活动详情

json:配置信息

  1. 小程序配置 app.json:根目录下的全局配置文件,包括了小程序的页面路径,全局窗口样式等API
  2. 工具配置 project.config.json:项目编辑器层的配置文件,包括是否支持ES6等API
  3. 页面配置 page.json:页面的窗口表现进行配置API

wxml:模板文件:通常模板文件

数据绑定

  1. 数据来源js文件中Page中的data属性
  2. 使用{{}}来访问data中的属性

逻辑操作

  1. 条件判断:wx:if/wx:elif/wx:else
  2. 循环:wx:for

标签

与通常html标签有点不同,微信提供了一套标签

block 标签 代码片段用于逻辑操作,操作完成之后不会展示到页面

模板

定义模板:使用name命名模板

<template name="xxx">
    <view>
        {{index}}
    </view>
</template>

使用模板: 用is来引用申明过的模板,data来传递参数

<template is="msgItem" data="{{...item}}"/>

可以理解为template中使用的内容就是data中申明的内容,正常传递应该是{{index:item.index}},使用三个点就是把item中的属性当参数传递,可并存如{{...item,aa:'xxx'}}

is可以使用Mustache语法

<template is="{{item % 2 == 0 ? 'even' : 'odd'}}"/>

import:导入文件中定义的template,但不会导入文件中其它内容,也不会导入文件中导入的template。 include:导入文件中除了template,wxs外的整个代码引入。

事件

写法:bind/catch: 事件名 或 bind/catch事件名

bind/catch区别:

  • bind冒泡事件,
  • catch非冒泡事件

事件对象:

属性名类型说明
typeString事件类型
timeStampInteger事件生成时的时间戳
targetObject触发事件的组件的一些属性值集合
currentTargetObject当前组件的一些属性值集合,冒泡事件中使用
detailObject额外信息,如form提交则detail中会存在value属性对应form中的值

target/currentTarget:

属性名类型说明
idString标签id
datasetObject对应标签上的data-属性名

dataset: 在组件中可以定义数据,这些数据将会通过事件传递给 SERVICE。 书写方式: 以data-开头,多个单词由连字符-链接,不能有大写(大写会自动转成小写)如data-element-type,最终在 event.currentTarget.dataset 中会将连字符转成驼峰elementType。