微信小程序开发指南

550 阅读2分钟

这是我参与8月更文挑战的第29天,活动详情查看:8月更文挑战

基础

插值

小程序中插值操作和vue中是一样的,属性也可以插值

{{}}

<view>{{msg}}</view>
<view x="{{msg}}"></view>

元素显示隐藏

使用属性hidden我们可以实现元素的显示隐藏操作

<view hidden="{{布尔值}}"></view>

条件渲染

  • wx:if="{{条件}}"
  • wx:elif="{{条件}}"
  • wx:else
<view wx:if="{{布尔值}}">真时显示</view>
<view wx:else>假时显示</view>

列表渲染

  • wx:for
    可以跟着对应的数组
  • wx:for-item
    可以修改遍历出的值的名字
  • wx:for-index
    可以修改遍历出的值的下标
  • wx:key
<view wx:for="{{arr}}" wx:key="{{inedx}}">{{item}} {{index}}</view>
<view wx:for="{{arr}}" wx:key="{{inedx}}" wx:for-item="newItem" wx:for-index="newIndex">{{newItem}} {{newIndex}}</view>

事件绑定

在小程序中,都是移动端事件


<view bindtap="tapHandler"></view>
<!-- 
  tapHandler应该写在
    Page({
      tapHandler () {}
    })
  小程序的函数中只有一个参数 e,其他所有的想要传递的数据都需要通过data-xxx的形式传递

  在函数中使用e.target.dataset.xxx获取
 -->

数据请求

小程序中提供了数据请求的方法,但是这个方法并不好用,所以在一些项目中,一般都会把请求进行二次封装,变成promise版本的

wx.request()


wx.request({
  url: '',
  data: {},
  method: "GET",
  header: {},
  success: res => {

  },
  fail: err => {}
})

小程序组件

组件使用

创建小程序组件

新建Component会直接出现四个文件,所以一般创建组件时,会先创建一个该组件的文件夹

  • 新建一个文件夹components/组件名
  • 新建一个Component

Component和Page类似,但是相关语法有差异

Page是靠Page({})
Component是靠 Component({})

Page的函数放在Page({}) 的大括号中
component的函数放在methods里

引入并注册

在使用该组件的位置,找到对应页面.json文件,然后配置usingComponents

{
  "usingComponents": {
    "组件标签名": "组件路径"
  }
}

模板使用

在页面中对应的位置上写上组件标签名

<组件名></组件名>

组件通信

父子通信

父组件/Page

<子组件名 key="value"/>

子组件

Component({
  properties: {
    key: 数据类型
  }
})

子父通信

把$emit变成了triggerEvent,把@变成了bind:

子组件

<button bindtap="tapHandler"></button>
Component({
  methods: {
    tapHandler () {
      this.triggerEvent("自定义事件名", '要传递的数据')
    }
  }
})

page/组件


<子组件 bind:自定义事件名="函数"/>
Page({
  函数 (e) {
    // e.detail就是对应的传递的数据
  }
})

生命周期

Vue的生命周期,如果使用了keep-alive 那么就可以有两个多出来的生命周期activated deactivated

Page

  • onLoad (created)
    页面加载完成
  • onShow
    页面显示
  • onReady
    页面初次渲染完成
  • onHide
    页面隐藏
  • onUnload (destroyed)
    页面销毁

Component

组件生命周期需要写在lifetimes中

  • created
    组件被创建时执行
  • attached
    组件进入到页面节点树时执行
  • ready
    组件渲染完成后
  • moved
    组件被移动到另外的位置
  • detached
    移除时
  • error
    组件中相关操作错误时

pageLifetimes

  • show
    组件所在页面显示时执行
  • hide
    组件所在页面隐藏时执行
  • resize
    组件所在页面尺寸改变时执行

微信小程序属性中绑定数据直接使用{{}}即可。