# xcx-91 **Repository Path**: ifercarly/xcx-91 ## Basic Information - **Project Name**: xcx-91 - **Description**: 小程序学习~~~~~~~~~ - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-26 - **Last Updated**: 2023-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 01. 小程序和网页的区别是什么? 宿主环境不一样,网页是浏览器,小程序是微信软件(小程序中不能操作 DOM); 支持能力不一样,小程序中能直接使用支付、直播、蓝牙、定位等功能... 开发方式不一样,小程序要使用自己的微信开发者工具,有自己的一套上线的流程... ## 02. 公司开发小程序第一步要干嘛? 把自己的微信号给老大,让自己的老大把你添加为开发者。 你再次扫码登录的时候,能直接登录公司主体的小程序的后台,获取到 AppID,开发小程序。 ## 03. 小程序当中的组件? view、text、`swiper/swiper-item`、image、navigator... ## 04. 小程序中的注意点? - 字体图标和背景图片只支持线上的或 base64,不支持本地的。 - 事件传参:通过 data-* 去传递,通过 e.target.dataset.* 去接收。 - 小程序中修改数据必须通过 setData 才是响应式的。 - 小程序把宽度划分了 750rpx,如果设计师给你提供的设计稿是 750,只需要量多少就写多少 rpx。 - 属性绑定注意和 Vue 的区别,例如 ``,双向绑定 ``。 ## 05. 小程序页面的组成部分? wxml、wxss、js、json... 配置文件:app.json(全局的)、页面.json(局部的) ## 06. 上线流程? 提交开发版本 => 选为体验版本(可以把相关人员设置为体验成员) => 提交审核版本 => 审核通过会出现**发布按钮** => 点击按钮发布。 ## 07. 你和后端是怎么对接的?后端是怎么给你提供接口文档的? `SwaggerUI`:后端生成接口文档的一个框架。 `Apifox` ## 08. 说一下小程序中的生命周期? 有三大分类,分别是应用级别的、页面级别的、组件级别的。 应用级别的:onLaunch(小程序启动,只触发一次)、onShow(后台进前台,可以通过参数获取场景值)、onHide... 页面级别的:onLoad(页面开始加载就会触发,只触发一次,一般获取参数)、onShow(看见页面就会触发)、onReady(渲染完毕触发)、onHide、onUnload(navigateTo 并不会触发卸载,redirectTo 才会触发) [组件级别的](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/lifetimes.html):created(这里面不能调用 setData,一般通过 this 挂载数据)、attached(组件已经挂载好了,可以调用 setData,发请求...) ## 09. 内置 API? `wx.request()`,发请求,域名要在小程序的后台配置好。 `wx.uploadFile()`,上传文件的,域名要在小程序的后台配置好。 `wx.showLoading()/wx.hideLoading()` `wx.showToast()` `wx.setStorageSync()、wx.getStorageSync()、wx.removeStorageSync()、wx.clearStorageSync()` ## 10. 头像和昵称的获取? ==注意:调试基础库的版本必须在 2.21.2 之上== 获取头像。 ```bash 1. 把 button 的 open-type 属性值置为 chooseAvatar 2. 监听 button 的 chooseavatar 事件 ``` ```html ``` 获取昵称。 ```bash 1. 设置 input 的 type 属性值为 nickname 2. 监听 input 的 change 事件,在 change 回调里面就可以拿到用户信息。 ``` ```html ``` ## 11. 页面跳转? 两个分类:编程式(通过写 JS 代码)和声明式(标签)。 **1\. **`wx.navigateTo()`,会形成历史记录,类似 vue-router 的 $router.push()。 ```html ``` 2\. `wx.redirectTo()`,会替换当前页面,不会形成历史记录,类似 vue-router 的 $router.replace()。 ```html ``` 3\. `wx.navigateBack()`,返回,通过 navigateTo 过来的才能返回。 ```html ``` **4\. **`wx.switchTab()`,跳转到 tabBar 页面。 ```html ``` 5\. `wx.reLaunch()`,干掉所有的历史记录。 ```html ``` ## 12. 自定义构建? `project.config.js` ```json { "setting": { ... // #2 开启手动构建 "packNpmManually": true, "packNpmRelationList": [{ // #3 找 package.json "packageJsonPath": "./package.json", // #4 构建的结果放到哪 "miniprogramNpmDistDir": "./miniprogram" }], ... }, "libVersion": "2.19.4", // #1 自定义小程序的根目录 "miniprogramRoot": "miniprogram/", "appid": "wx3eb80995b7e84924", "projectname": "mpdemo", } ``` ## 13. 自定义组件? 第一步:创建组件。 第二步:注册组件。 局部,页面.json。 ``` { "usingComponents": { "authorization": "/components/authorization/authorization" } } ``` 全局,`app.json`。 ```json { "usingComponents": { "authorization": "/components/authorization/authorization" } } ```