学习笔记:小程序学习和实践

### 问题和解决汇总
[vue 子组件绑定事件无效](https://www.jianshu.com/p/b33c079308af)
[父子组件传值,在子组件页面点击事件传父组件](https://blog.csdn.net/qq_45495460/article/details/108010254)

### 教程
[uni-app的组件](https://uniapp.dcloud.net.cn/component/README?id=基础组件)
[uni-app的vue3教程](https://uniapp.dcloud.io/vue3-basics)
[uni-app-框架学习](https://uniapp.dcloud.io/frame)
[白话uni-app 【也是html、vue、小程序的区别】](https://ask.dcloud.net.cn/article/35657)

[uni-app小程序——从工具下载到运行项目](https://blog.csdn.net/weixin_38633659/article/details/120313891?spm=1001.2014.3001.5501)

* [小程序的页面跳转](https://blog.csdn.net/weixin_42881768/article/details/124886403)

### 小程序应用包大小限制问题
* 如何理解分包?
  在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示。
* 官方单个小程序大小限制为2M
* 目前小程序分包大小有以下限制:
    整个小程序所有分包大小不超过 20M
    单个分包/主包大小不能超过 2M
  
  [小程序 分包](https://blog.csdn.net/weixin_43294560/article/details/120604914)

##### 解决办法
* 资源压缩 或者 资源CDN处理(放在服务器)
* 分包

### 环境搭建
##### 1、开发工具 和 配置
[官方推荐hbuilderx](https://www.dcloud.io/hbuilderx.html)
[微信官方开发工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)

* 「hbuilderx」 需要配置 「微信开发工具」的路径
![image.png](https://upload-images.jianshu.io/upload_images/740862-c6766a73a5b0cc7f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/620)

* 「微信开发工具」的配置
  设置 - 安全设置 - 服务接口(开启)
  ![image.png](https://upload-images.jianshu.io/upload_images/740862-a4f9d7acec8d5b7e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/620)

 企业微信  和 游戏 的插件(根据需要)
  ![image.png](https://upload-images.jianshu.io/upload_images/740862-a975274e58bc049e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/620)

 小程序后台账号配置,需要开发者添加到开发组中。

##### 2、「hbuilderx」编译运行
* 打开工程目录 - 运行 - 可以选择运行在浏览器或者小程序中
  
* 「微信开发工具」HTTPS的关闭(默认开启)
    ![image.png](https://upload-images.jianshu.io/upload_images/740862-3f1d89cda6bb33f6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/620)

* 真机运行,需要下载真机运行的插件

##### 3、常见异常
* 代码使用了scss/sass语言,未安装插件报错(安装对应插件后解决)

* 微信账号需要绑定手机号认证,否则报以下错误
![image.png](https://upload-images.jianshu.io/upload_images/740862-dffcfa72fab3cc3f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/620)

### 小程序开发与网页H5开发的差异
* 网络模型(b/s -> c/s)
   之前的网页,服务端代码混合在页面里;现在前后端分离,通过js api获取json数据,把数据绑定在界面上渲染。

* 运行环境区别(从浏览器变成v8引擎)
  浏览器特有:window、document、navigator、location对象,包括cookie等存储,只有在浏览器中才有;app和小程序都不支持。
  app和小程序支持web-view组件,里面可以加载标准HTML,这种页面仍然支持浏览器专用对象window、document、navigator、location。

* 以前的dom操作,改成vue的MVVM模式
  现在前端趋势是去dom化,改用mvvm模式,更简洁的写法,大幅减少代码行数,同时差量渲染性能更好。
  例如,uni-app使用vue的数据绑定方式,以此解决js和dom界面交互的问题。

* uni-app的工程结构和页面管理
  - 每个可显示的页面,都必须在 pages.json中注册。
    例如,支持配置原生的导航栏和底部tabbar,但事件的响应需要在vue页面中实现。

* uni-app布局推荐使用flex。

### uni-app的核心文件
![12.png](https://upload-images.jianshu.io/upload_images/740862-80b67e98cb52f963.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

* pages.json,全局配置文件
  决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。它类似微信小程序中app.json的页面管理部分。
  其中文件中pages数组中第一项表示应用启动页。
  
* manifest.json,应用的配置文件
  用于指定应用的名称、图标、权限等。

* package.json,应用的打包配置文件
  可以增加uni-app扩展节点,可实现自定义条件编译平台(如钉钉小程序、微信服务号等平台)。

* App.vue,uni-app的主组件文件
  所有页面都是在App.vue下进行切换的,是页面入口文件。但App.vue本身不是页面,这里不能编写视图元素。
  这个文件的作用包括:调用应用生命周期函数、配置全局样式、配置全局的存储globalData。
  应用生命周期仅可在App.vue中监听,在页面监听无效。

* main.js,uni-app的入口文件
  主要作用是初始化vue实例、定义全局组件、使用需要的插件如vuex。

* uni.scss,应用风格统一文件
  用途是为了方便整体控制应用的风格。比如按钮颜色、边框风格,uni.scss文件里预置了一批scss变量预置。
  uni.scss是一个特殊文件,在代码中无需 import 这个文件即可在scss代码中使用这里的样式变量。uni-app的编译器在webpack配置中特殊处理了这个uni.scss,使得每个scss文件都被注入这个uni.scss,达到全局可用的效果。如果开发者想要less、stylus的全局使用,需要在vue.config.js中自行配置webpack策略。

* vue.config.js,应用的vue页面配置文件,仅vue页面生效。
  是一个可选的配置文件,如果项目的根目录中存在这个文件,那么它会被自动加载,一般用于配置 webpack 等编译选项。

* .hbuilderx/launch.json,应用启动配置文件
  可以用来配置本地运行还是云端运行,属于hbuildex编译器的一部分。

* unpackage 存放打包后的文件目录

### 生命周期(应用生命周期、页面生命周期、组件生命周期)
[生命周期](https://uniapp.dcloud.io/collocation/frame/lifecycle?id=应用生命周期)

### 页面路由
[页面路由](https://uniapp.dcloud.io/api/router?id=navigateto)

### uni-app 使用 纯小程序代码
[uni-app使用小程序原生组件](https://blog.csdn.net/qq_28912983/article/details/110262513)

### uni-app发布小程序
* 需要配置微信小程序的id(微信后台申请)
* 发布-上传
* 微信开发工具中,点击上传
* 如果需要接入服务器请求,需要在开发后台配置域名信息,并且只支持https。
  ![image.png](https://upload-images.jianshu.io/upload_images/740862-b2adfce668bc4e46.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

* 小程序版本可以分为正式版本、审核版本、开发版本(可以选为体验版本)
  可以进行远端调试,即在微信直接运行小程序。

  [官方设置文档](https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值