微信小程序速览

前提条件

  • 会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 天前
微信小程序 getSystemInfo 提示已废弃、屏幕高度算错胶囊还对不齐?getWindowInfo 和 getDeviceInfo 怎么接才稳
javascript·微信小程序·小程序·小程序开发·devdiy
dreams_dream1 天前
微信小程序-使用npm包
微信小程序·小程序·npm
L1mbo1 天前
Lite模式 缓解微信开发者工具卡顿,附 uni-app 实践方案
前端·微信小程序
大数据技术派2 天前
等了一周,我的摸鱼小程序终于微信认证通过了
微信小程序
CSharp精选营3 天前
记一次家庭物品管理的折腾:从“收纳”到“可检索”
微信小程序·aicoding·屋册有序·物品收纳管理·家庭收纳管理工具
dreams_dream4 天前
微信小程序:页面事件-上拉触底
微信小程序·小程序
鹏多多4 天前
AI 到底能不能独立做个产品?我拿一个小程序验证了
前端·微信小程序·ai编程
计算机毕设定制辅导-无忧学长5 天前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
大数据技术派6 天前
我用AI写代码,做了3个小玩意儿
后端·微信小程序
律宏阔7 天前
Taro 4 项目从 npm 迁移到 pnpm 踩坑实录
前端·微信小程序·taro