微信小程序的几个实用小知识

本文会记录一些我在微信小程序开发中,感觉比较好用的一些小知识点,希望也能给大家带来方便。

路径别名 resolveAlias

app.json 配置

json 复制代码
{
    "resolveAlias": {
        "@utils/*": "utils/*",
        "@api/*": "api/*",
        "@config/*": "config/*",
        "@behaviors/*": "behaviors/*"
    }
}

other.js 使用

ts 复制代码
import { tokenStorage } from '@utils/storage'
// 这个方法配置了之后,就可以在别的地方这样方便的引用

缓存 storage

当缓存使用的地方,或者缓存很多的时候,如何让缓存的使用看起来不那么凌乱。以下是我的使用方法

storage.js

ts 复制代码
export interface StorageInstance {
  set: (value: any) => void;
  get: () => any;
  remove: () => void;
}

/**
 * 本地存储基本方法
 * @param key 
 * @param defaultVal 
 */
export const initStorage = (key: string, defaultVal: any = ''): StorageInstance => {
  return {
    set: (value: any) => {
      wx.setStorageSync(key, value)
    },
    get: () => {
      return wx.getStorageSync(key) || defaultVal
    },
    remove: () => {
      wx.removeStorageSync(key)
    }
  }
}

export const tokenStorage = initStorage('token')

login.js

ts 复制代码
import { tokenStorage } from '@utils/storage'
import { login } from '@api/user'

Page({
    data: {},
    methods: {
        onLogin() {
            const res = await login()
            tokenStorage.set(res.data.token)
        }
    }
})

request.js

ts 复制代码
import { tokenStorage } from '@utils/storage'

wx.request({
    headers: { Authorization: `Bearer ${tokenStorage.get()}` }
})

behaviors

behaviors 是微信小程序的一个概念,它可以让多个页面或者组件复用代码,减少重复。

eg:订单列表、订单详情都有取消订单的功能,那么就可以使用 behaviors

order-behavior.js

ts 复制代码
import { orderCancelApi } from '@api/order';

Behavior({
    data: {},
    methods: {
        orderCancel() {
            wx.showModal({
                title: '提示',
                content: '确定取消订单吗?',
                success: function (res) {
                    if (res.confirm) {
                        orderCancelApi().then(() => {
                            wx.showToast({ title: '取消成功', icon: 'none' })
                            this.refresh && this.refresh(); // 调用页面中的方法刷新数据
                        })
                    }
                }
            })
        }
    }
})

order-list.js

ts 复制代码
import { orderBehavior } from '@behaviors/order-behavior';

Page({
    behaviors: [orderBehavior],
    data: {},
    methods: {
        refresh() {
            // 刷新列表
        },
        // 取消订单
        onCancel() {
            // 调用 behaviors 中的方法
            this.orderCancel()
        },
    }
})

order-detail.js

ts 复制代码
import { orderBehavior } from '@behaviors/order-behavior';

Page({
    behaviors: [orderBehavior],
    data: {},
    methods: {
        refresh() {
            // 刷新详情
        },
        // 取消订单
        onCancel() {
            // 调用 behaviors 中的方法
            this.orderCancel()
        },
    }
})

注意点:behaviors 中的数据、方法,会被引用页面/组件的同名数据、方法覆盖。

计算属性 miniprogram-computed

app.js

ts 复制代码
import { behavior as computedBehavior } from 'miniprogram-computed'

// 挂在到全局上
wx.computedBehavior = computedBehavior

App({})

page.js

ts 复制代码
Page({
    behaviors: [wx.computedBehavior],
    data: {
        price: 12,
        count: 3,
    },
    computed: { 
        totalAmount(data) {
            return data.price * data.count
        }
    }
})
相关推荐
优雅的大白鹅4 小时前
创建uniapp小程序
小程序·uni-app
liangdabiao5 小时前
开源AI拼豆大升级 - 一键部署cloudflare page - 全免费 web和小程序
前端·人工智能·小程序
px不是xp7 小时前
DeepSeek API集成:让小程序拥有AI大脑
javascript·人工智能·小程序
小汪说干货7 小时前
2026年4月最新|公众号文章插入文档附件3种技术方案
javascript·小程序
QQ22792391028 小时前
Java springboot基于微信小程序的智慧旅游导游系统景点门票酒店预订(源码+文档+运行视频+讲解视频)
java·spring boot·微信小程序·maven·vuejs
小汪说干货14 小时前
2026年4月优化版|公众号文档格式附件插入3种方案(推荐“附链”小程序)
小程序·微信公众平台
万岳科技系统开发1 天前
商城系统搭建自建平台与入驻第三方平台对比分析
数据库·小程序·架构
笨笨狗吞噬者1 天前
uni-app 运行时揭秘:styleIsolation 的转化
前端·微信小程序·uni-app
double_eggm1 天前
微信小程序3
微信小程序·小程序
杰建云1671 天前
小程序如何提升留存?
小程序·小程序制作