微信小程序速览

前提条件

  • 会scss
  • 明白vw,vh的意思
  • 会vue
  • 会es6语法, 会ts

个人认为的最佳开发方式

  • vscode安装微信小程序相关插件,作为主力编辑器
  • 微信开发者工具当浏览器使用

小程序代码文件构成

  • ts文件: 实现主要代码逻辑
  • wxml文件: 实现页面/组件视图
  • scss文件: 实现页面/组件引入
  • json文件: 实现组件引入

特殊的文件

  • app.ts: 微信小程序入口文件
  • app.scss: 全局样式文件
  • app.json: 微信小程序配置文件(所有看到的界面都要在该文件进行配置)

wxml中将变量设置到某个组件属性上

xml 复制代码
<van-field value="{{ formData.inputValue2 }}" border="{{ false }}" />

{{ }} 中仅能支持最最最最最简单的表达式,不支持复杂表达式

wxml中的逻辑控制语句

分支语句

xml 复制代码
<block wx:if="{{canIUseNicknameComp && !hasUserInfo}}">
</block>
<block wx:elif="{{!hasUserInfo}}">
</block>
<block wx:else>
</block>

循环语句

每一项默认为item

xml 复制代码
<van-tabbar-item wx:for="{{list}}" wx:key="index">
    <image slot="icon" mode="aspectFit" class="img-item" src="{{item.iconPath}}"></image>
</van-tabbar-item>

事件

xml 复制代码
<van-tabbar bind:change="switchTab">
</van-tabbar>
ts 复制代码
Component({
    data:{
        selected: 0,
        list: [
            {
                pagePath: "/pages/base/index/index",
                iconPath: "/assets/image/icon_component.png",
                selectedIconPath: "/assets/image/icon_component_HL.png",
                text: "基础",
              }
        ]
    },
    methods:{
        switchTab(e: WechatMiniprogram.CustomEvent) {
            const selectedIndex = e.detail as unknown as number;
            const tabInfo = this.data.list[selectedIndex];
            this.setData({ selected: selectedIndex });
        }
    }
})

事件参数不能直接通过事件函数传递,只能通过自定义data-xxx属性传递,然后通过e.currentTarget.dataset.xxx获取

生命周期函数

微信小程序分为应用生命周期函数,页面生命周期函数,组件生命周期函数。这些生命周期函数不是统一的,使用时请注意应该采用哪种生命周期

小程序的页面生命周期函数,没有类似vue的updated周期函数

解决办法是:微信小程序: setData详解 - 掘金 (juejin.cn)

将updated周期函数中的逻辑移到,setData的回调函数中,该回调函数会在setData触发页面更新完毕之后,再被调用

别名使用

js/ts中支持使用别名,但scss中不支持使用别名

自定义组件

需要在对应的xx.json中设置"component": true 如下例子

json 复制代码
{
  "component": true,
  "usingComponents": {}
}

demo

free pan/wechat_miniapp_example (gitee.com)

相关推荐
依辰1 小时前
小程序错误日志链路处理规范
前端·javascript·微信小程序
只会安静敲代码的 小周2 小时前
Uniapp微信小程序:轻松获取用户头像和昵称
微信小程序·小程序·uni-app
wuyijysx14 小时前
微信小程序 binding
微信小程序·小程序
编程毕设20 小时前
【含文档+PPT+源码】基于微信小程序健康管理之健身房管理系统的设计与实现
微信小程序·小程序
暖阳_xm21 小时前
flex布局实现横向滚动
前端·css·微信小程序
咸虾米1 天前
微信云开发支付配置绑定商户号时,无法发起授权,通过工作流或云开发模版解决支付问题
微信小程序
萌萌哒草头将军1 天前
🚀惊了,这个国产软件居然这么牛,比 uniapp 还全能❤️
微信小程序·uni-app·小程序·云开发
qq_424409191 天前
uniapp的h5,打开的时候,标题会一闪而过应用名称,再显示当前页面的标题
微信小程序·uni-app·html5
换日线°1 天前
微信小程序边框容器带三角指向
css·微信小程序
small_fox_dtt1 天前
微信小程序转为App实践篇 FinClip
微信小程序·小程序