Skip to content
鼓励作者:欢迎打赏犒劳

微信小程序基础入门

生命周期

js
// pages/function.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

   /**
   * 朋友圈分享
   */
  onShareTimeline() {

  }
})

page声明

js部分

js
// index.js
// 获取应用实例
const app = getApp()
let _this;
Page({
    data: {
        active:0,
        tabList:[]
    },
    onLoad(e) { // 生命周期函数
        _this = this;
        _this.getGoodsList()
    },
    goDetail: function (e) {
        let id = e.currentTarget.dataset.id
        wx.navigateTo({
            url: '/pages/detail/detail?id=' + id
        })
    },
    getGoodsList: function () {
        wx.showLoading({
            title: '加载中'
        })
        wx.$request({
            url: '/goods/getListByPage',
            method: 'POST',
            data: {
                categoryId:_this.data.curCategoryId,
                currentPage:_this.data.currentPage,
                pageSize:_this.data.pageSize,
            }
        }).then(res => {
            if (_this.data.isAccumulation){ //是否累加
                _this.setData({
                    goodsList: _this.data.goodsList.concat(res.data.rows), //累加list
                })
            }else{
                _this.setData({ //覆盖数据
                    goodsList: res.data.rows
                })
            }
            // 判断数据是否请求完毕
            if (res.data.total <= _this.data.goodsList.length){
                _this.setData({
                    isEnd: true
                })
            }
            _this.splitGoodsList()
            // 隐藏加载框
            wx.hideLoading({})
        })
    },
    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {
        _this.setData({
            isAccumulation: false, //累加数据
            currentPage: 1,
            isEnd : false
        });
        this.getGoodsList();
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {
        if (_this.data.isEnd){
            return
        }

        _this.setData({
            isAccumulation: true, //累加数据
            currentPage: _this.data.currentPage+1
        });
        this.getGoodsList();
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {
        return {
            title: '麦子鞋城,各种篮球鞋,跑步鞋,运动鞋,AJ,耐克,阿迪,NB,椰子鞋,一手货源,质量保证'
        }
    },
    onShareTimeline: function (res) {
        return {
            title: '麦子鞋城,各种篮球鞋,跑步鞋,运动鞋,AJ,耐克,阿迪,NB,椰子鞋,一手货源,质量保证'
        }
    }

})

wxml

html
<view class="main">
    <view wx:for-item="item"  bindtap="goDetail" data-id="{{item.id}}" wx:key="*this" wx:for="{{tabList}}">
         {{item.categoryName}}
    </view>
</view>

引入json文件数据

创建/mock/data.js 开头加上 export default

js
export default [
    {
        "name":"123"
    }
]

在pages页面引入

js
import data from "../../mock/data";

图片相关

显示本地图片

html
<image src="/img/1.png"></image>

加载本地图片成base64

加载多个本地图片,等待图片加载完毕之后才执行后面的动作

vue
async loadLocalImages() {
    const images = [
                '/img/1.png',
                '/img/2.png'
            ];
    try {
        let str = ""
        const promises = images.map((path) => this.loadAndConvertImage(path));
        const results = await Promise.all(promises);
        results.forEach(item => {
            str = sss.replace(item.key,item.value)
        })
        this.setData({
            str: str
        });
    } catch (error) {
        console.error('加载图片失败:', error);
    }
},
async loadAndConvertImage(filePath) {
    const fs = wx.getFileSystemManager();
    return new Promise((resolve, reject) => {
        fs.readFile({
            filePath: filePath,
            encoding: 'base64', // 使用 base64 编码
            success: (res) => {
                const base64Data = res.data;
                let s = `<img src="data:image/png;base64,${base64Data}" />`
                resolve({key:filePath,value:s});
            },
            fail: (err) => {
                reject(err);
            }
        });
    });
},

选取相册图片转base64

html
imgToBase64(filePath) {
    return new Promise((resolve, reject) => {
      let baseFormat = 'data:image/png;base64,'
      let base64 = wx.getFileSystemManager().readFileSync(filePath, 'base64')
      resolve(baseFormat + base64)
    })
  }


wx.chooseImage({
    count: 1,
    sizeType: ['original', 'compressed'],
    sourceType: ['album', 'camera'],
    success: async (res)=> {
        // tempFilePath可以作为img标签的src属性显示图片
        const tempFilePaths = res.tempFilePaths
        let base64Image = await that.imgToBase64(tempFilePaths[0])
        console.log(base64Image)
    }
})

如有转载或 CV 的请标注本站原文地址