小程序request三层封装和分包以及路由和组件传参

  1. 工程化的概念
  2. 工程化API封装 【重点】30%
  3. 工程化组件封装 【重点】30%
  4. 小程序路由【重点】30%
  5. 上架
  6. 小程序分包【重点】10%

1. 工程化的概念

在开发小程序时,需要将自己的代码进行封装,命名要规范,位置要规范,以达到代码复用,可以大量生产的效果

2. request三层封装

对 wx.request() 发请求的API进行三层封装

2.1 工具函数层

utils/request.js 对 wx.request进行封装

js 复制代码
//封装第一层,对wx.request进行封装
const baseURL="http://www.look518.com";

const request = (options) => {
    return new Promise((resolve, reject)=>{
        wx.request({
            ...options,
            url: baseURL + options.url,
            success(res){
                //将异步操作的结果通过resolve传递出去
                resolve(res)
            },
            fail(err){
                //将失败的信息传递出去
                reject(err)
            }
        })
    })
}

module.exports = request;

2.2 接口函数层

api/film.js 对接口进行封装

js 复制代码
//封装第二层,对接口进行封装
const request = require('../utils/request.js');

//获取电影列表
const getList = (data)=>{
    return request({
        method:'get',
        url:'/api/film.php?a=list',
        data,
    })
}

module.exports={
    getList,
}

2.3 应用层

在 index.js 页面逻辑上进行调用

js 复制代码
let {getList}=require('../../api/film.js');

async onLoad(){
    let res=await getList({page:1, pagesize:5})
    console.log(res.data.data);
}

3. 自定义组件【重点】

3.1 创建和使用组件

第一步:创建组件

新建 components 文件夹,在里面新建组件文件夹,再点 鼠标右键 => "新建 Component"

在 .wxml 中写组件的内容

第二步:使用组件

在 index.json 中注册组件

js 复制代码
"usingComponents": {
  "my-button":"../../components/my-button/my-button"
}

在 index.wxml 中使用组件

html 复制代码
<my-button></my-button>

3.2 组件的生命周期

组件的生命周期写在 .js 中的 lifetimes 属性中

js 复制代码
//生命周期函数
lifetimes:{
    created(){
        console.log('1. 组件创建了')
    },

    attached(){
        console.log('2. 组件渲染完成了')
    },

    detached(){
        console.log('3. 组件被干掉了');
    }
}

3.3 参数父传子

将父组件的数据传递给子组件

第一步:在父组件中设置自定义属性,将数据传递给子组件

html 复制代码
<!-- 数据父传子 -->
<my-button txt="普通按钮"></my-button>
<my-button txt="马上注册新会员"></my-button>
<my-button></my-button>

第二步:在子组件中接收数据

js 复制代码
properties: {
    txt:{
        type:String,  #数据类型
        value:'我是按钮', #默认值
    },
    ...
},

3.4 参数子传父

将子组件的数据传递给父组件

第一步:在子组件中触发自定义事件,并传参数

js 复制代码
//数据子传父
this.triggerEvent('toFather', this.data.num)

第二步:在父组件中使用子组件时,设置自定义事件,接收参数

vue 复制代码
<my-button txt="普通按钮" bind:toFather="getData"></my-button>

//接收子组件传回的数据
getData(obj){
    console.log(obj.detail);
},

4. 小程序的路由【重点】

4.1 配置路由

在 app.json 全局配置中配置路由

js 复制代码
"pages": [
    "pages/index/index",
    "pages/list/list"
],

4.2 配置 tabBar

在 app.json 全局配置中,可以添加 tabBar 实现底部导航

js 复制代码
"tabBar": {
    "list": [{
      "pagePath": "pages/index/index",
      "iconPath":"images/home1.png",
      "selectedIconPath": "images/home2.png",
      "text": "首页"
    }, {
      "pagePath": "pages/list/list",
      "text": "列表"
    }, {
        "pagePath": "pages/news/news",
        "text": "新闻"
    }]
},

4.3 路由的API

switchTab切换tab,只能切换出现在 tabBar 上面的页面

js 复制代码
wx.switchTab({url:'/pages/list/list'})

reLaunch,清空全部页面,跳转到指定的页面

js 复制代码
wx.reLaunch({url: '/pages/list02/list02'})

redirectTo,关闭当前页面,跳转到指定的页面

js 复制代码
wx.redirectTo({url: '/pages/list02/list02'})

navigateTo,保留当前页面,跳到下一个页面

js 复制代码
wx.navigateTo({url: '/pages/list01/list01'})

navigateBack,后退一个页面

js 复制代码
wx.navigateBack()

5. 小程序上架

小程序上架必须按公众平台的上线流程,完成每一个步骤

第一步:完善信息

第二步:开发小程序

第三步:上传到微信服务器, 开发版本 》 审核版本 》 上线版本

注意:不要上传demo,即使上传了demo也不要提交审核

6. 小程序分包

小程序单包大小限制为 2M,如果开发的项目大于2M就需要分包

第一步:配置 app.json ,添加子包的设置

js 复制代码
"subpackages": [
    {"root":"pageA", "pages":["index/index"]},
    {"root":"pageB", "pages":["home/home"]}
],

第二步:在主包中跳转过去

第三步:上传

注意事项:

  1. tabBar 页面必须在主包内
  2. subpackage 的根目录不能是另外一个 subpackage 内的子目录
  3. 每个子包是独立的,相互之间不能访问,但是每一个子包都可以访问主包的数据
相关推荐
高级程序源5 小时前
django招聘网站信息爬取与分析系统79704-计算机课程设计、毕业设计
后端·python·mysql·小程序·django·flask·课程设计
zhangminghuan8 小时前
UniApp / 微信小程序实战拓展面试题|业务坑点、工程化、跨端踩坑(2026 前端进阶)
小程序
Kingexpand_com17 小时前
企业车队运营痛点解析:传统人工模式如何实现数字化升级
小程序·app·软件开发·app定制开发·打车用车app·车队
2601_949950631 天前
练题簿在线练题全流程:从资料导入到模拟考试与错题复盘
学习·考研·小程序·刷题·小程序推荐
投票竞赛1 天前
线上投票海报生成教程,一键制作带小程序码投票海报
小程序
海鸥两三1 天前
小程序文档预览 · 进阶面试题
小程序·uni-app·uniapp
m0_587383001 天前
上海24小时自助健身房系统软件开发实战指南:从架构到部署
人工智能·小程序·数据挖掘·系统架构·需求分析
海鸥两三1 天前
微信小程序 PDF 预览实践(uni.downloadFile → uni.openDocument)
小程序·uni-app
河北清兮网络科技2 天前
开发软件怎么找靠谱的公司?普通人最全筛选避坑指南
小程序·app·短剧·短剧app·广告联盟
奶油喜多多2 天前
深度测评2026培训机构消课系统,课时核算落地经验
小程序·需求分析