uni-app开发总结分享

2023-10-26

目录

一、uni-app介绍

二、uni-app和vue的具体区别

1、组件/标签的变化

2、js

3、uniapp自带路由和请求方式

三、环境搭建

1、安装HbuilderX

 2、创建uni-app项目

四、项目目录结构

五、运行uni-app

1、浏览器运行:

2、运行App到手机或模拟器:

3、 在微信开发者工具里运行

 六、发布uni-app

 1、打包H5

2、打包为原生App

3、发布为微信小程序

七、在uniapp项目上使用uView UI框架

1、安装配置:

2、uView依赖SCSS

3、NPM方式配置步骤

4、下载方式配置步骤

 5、组件使用

 ​八、uni-app项目上使用 uCharts echarts


一、uni-app介绍

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到14个平台:iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。uni-app官网

下面是uni-app功能框架图,可以了解下它的架构。

uniapp底层集成了native技术,就是h5+引擎,能调用手机原生api,所以uniapp能开发接近原生性能的app,这是js引擎部分;它是双引擎,渲染又是独立一个独立引擎。这个渲染引擎又分为nvue渲染和webview渲染。

二、uni-app和vue的具体区别

1、组件/标签的变化


- div改成view

- ul、li没有了,都用view代替

- span、font改成text

- img改成image

- input还在,但改成了confirmtype

- form、button、checkbox、radio、label、textarea、canvas、video这些都还在

- a改成navigator router-link

- select改成picker

- iframe改成web-view

- audio不再推荐使用,改成api方式,背景音频api文档其实老的HTML标签也可以在uni-app里面使用,uniapp编译器会在编译时把老的标签转为新标签,比如把div编译 成view.但不推荐这种方法,调试H5端时容易混乱。

  **除了改动外,新增了一批手机端常用新组件**

- scroll-view 可视区域滚动视图容器

- swipe可滑动区域视图容器

- icont 图标

- rich-text富文本(不可执行js,但可以渲染各种文字格式和图片)

- progress 进度条

- slider 滑块指示容器

- switch 开关选择器

- camera相机

- live-player 直播

- map 地图

- cover-view 可覆盖原生组件的视图容器

  cover需要多强调几句,uniapp的非h5端的video、map、canvas、textarea是原生组件,

  层级高于其他组件。如需要覆盖原生组件,比如在map上加个遮罩,则需要使用cover-view组件

  除了内置组件,还有许多开源扩展组件,把常用 操作都进行封装,Dcloud建立了插件市场收录这些扩展组件。

2、js

因为uniapp的api是参考小程序的,所以和浏览器的js api有很多不同,如:

alert,confirm 改成 uni.showmode
 axios 改成 uni.request
cookie、session没有了,localstorage改成uni.storage
uni-app的js api还有很多,但基本就是小程序的api,把wx.xxx改成uni.xxx即可
uniapp在不同端,支持条件编译,无限制的使用各端独有的api

3、uniapp自带路由和请求方式

vue:需要vue-router来实现路由跳转 数据请求方式:需要安装axios

uniapp:自带路由不需要使用vue-router 内置了uni.request请求方式 路由

三、环境搭建

1、安装HbuilderX

可视化的方式比较简单,HBuilderX内置相关环境,开箱即用,无需配置nodejs。最好还是配置一下,必进心目中可能需要安装插件。

 2、创建uni-app项目

在点击工具栏里的文件 -> 新建 -> 项目(快捷键Ctrl+N):

选择uni-app类型,输入项目名称-》选择模版-》点击创建,即可成功创建项目。 

 已创建过项目这直接将项目拉到HBuilderX即可打开。

四、项目目录结构

一个uni-app工程,默认包含如下目录及文件:

┌─uniCloud              云空间目录,阿里云为uniCloud-aliyun,腾讯云为uniCloud-tcb(详见uniCloud)
│─components            符合vue组件规范的uni-app组件目录
│  └─comp-a.vue         可复用的a组件
├─utssdk                存放uts文件
├─pages                 业务页面文件存放的目录
│  ├─index
│  │  └─index.vue       index页面
│  └─list
│     └─list.vue        list页面
├─static                存放应用引用的本地静态资源(如图片、视频等)的目录,注意:静态资源只能存放于此
├─uni_modules           存放[uni_module](/uni_modules)。uView组件库、uCharts
├─platforms             存放各平台专用页面的目录,详见
├─nativeplugins         App原生语言插件 详见
├─nativeResources       App端原生资源目录
│  └─android            Android原生资源目录 详见
├─hybrid                App端存放本地html文件的目录,详见
├─wxcomponents          存放小程序组件的目录,详见
├─unpackage             非工程代码,一般存放运行或发行的编译结果
├─AndroidManifest.xml   Android原生应用清单文件 详见
├─main.js               Vue初始化入口文件
├─App.vue               应用配置,用来配置App全局样式以及监听 应用生命周期
├─manifest.json         配置应用名称、appid、logo、版本等打包信息,详见
├─pages.json            配置页面路由、导航条、选项卡等页面类信息,详见
└─uni.scss              这里是uni-app内置的常用样式变量

(2)、全局文件配置:uni-app官网 (dcloud.net.cn)

(3)、项目分包 

场景:微信小程序中主包过大的情况下就需要分包了

五、运行uni-app

1、浏览器运行:

进入项目,点击工具栏的运行 -> 运行到浏览器 -> 选择浏览器,即可体验 uni-app 的 web 版。

2、运行App到手机或模拟器:

使用电压足够的usb端口连接手机,设置中开启USB调试,手机上允许电脑设备调试手机,进入项目,点击工具栏的运行 -> 运行App到手机或模拟器,即可在该设备里面体验uni-app。

3、 在微信开发者工具里运行

安装微信开发者工具:微信开发者工具下载地址

 配置manifest.json

进入项目,点击工具栏的运行 -> 运行到小程序模拟器 -> 微信开发者工具,即可在微信开发者工具里面体验uni-app。

 注意:如果是第一次使用,需要先配置小程序ide的相关路径,才能运行成功。如下图,需在输入框输入微信开发者工具的安装路径。

注意:微信开发者工具需要开启服务端口 在微信工具的设置->安全中。 

勾选不校验合法域名可用于开发,发布包是一定要是https

在开发中可能会出现:微信开发者工具重定向(请求接口307)问题 

 六、发布uni-app

 1、发布为H5

(1)在 manifest.json 的可视化界面,进行配置,

 (2)在HBuilderX工具栏,点击发行,选择网站-H5手机版

2、打包为原生App

(1)、打包前一定要配置好manifest.json中App的配置,可配置APP图标、启动页、权限等配置

获取uni-app应用标识(AppID),DAccount 开发者中心

 Andorid包名:

(2)、在HBuilderX工具栏,点击发行,选择原生app-云端打包

3、发布为微信小程序

 一定要添加服务器域名,微信公众平台 (qq.com)

上传小程序到公众平台,会上传到版本管理->开发版本中。

开发版本可设置体验版,便于测试人员测试。

发布步骤:提交审核-》等待审核,审核通过后-》 发布线上

七、在uniapp项目上使用uView UI框架

uView官网:https://www.uviewui.com/components/intro.html

1、安装配置:

由于uView支持npm下载的方式安装,二者配置几乎一致,因为某些平台的兼容性,在配置easycom稍有不同,为了不造成混淆,这里将两种 方式分开说明:

2、uView依赖SCSS

必须要安装此插件,否则无法正常运行

  • 如果项目是由HBuilder X创建的,相信已经安装scss插件,如果没有,就在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安装, 如不生效,重启HX即可
  • 如果您的项目是由vue-cli创建的,请通过以下命令安装对sass(scss)的支持,如果已安装,请略过。
// 安装sass
npm i sass -D

// 安装sass-loader
npm i sass-loader -D

3、NPM方式配置步骤

(1)、引入uView主JS库

在项目src目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。

// main.js
import uView from "uview-ui";
Vue.use(uView);

 (2)、在引入uView的全局SCSS主题文件

在项目src目录的uni.scss中引入此文件。

/* uni.scss */
@import 'uview-ui/theme.scss';

(3)、 引入uView基础样式

App.vue首行的位置引入,注意给style标签加入lang="scss"属性

<style lang="scss">
	/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
	@import "uview-ui/index.scss";
</style>

(4)、配置easycom组件模式 

// pages.json
{
	"easycom": {
		"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
	},
	
	// 此为本身已有的内容
	"pages": [
		// ......
	]
}

(5)、Cli模式额外配置

如果是vue-cli模式的项目,还需要在项目根目录vue.config.js文件中进行如下配置:

// vue.config.js,如没有此文件则手动创建
module.exports = {
    transpileDependencies: ['uview-ui']
}

4、下载方式配置步骤

  下载 uView 插件 官方下载地址:https://ext.dcloud.net.cn/plugin?id=1593

(1)、 引入uView主JS库

在项目根目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。

// main.js
import uView from '@/uni_modules/uview-ui'
Vue.use(uView)

(2)、 在引入uView的全局SCSS主题文件

在项目根目录的uni.scss中引入此文件。

/* uni.scss */
@import '@/uni_modules/uview-ui/theme.scss';

(3)、引入uView基础样式

注意:在App.vue首行的位置引入,注意给style标签加入lang="scss"属性

<style lang="scss">
	/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
	@import "@/uni_modules/uview-ui/index.scss";
</style>

(4)、 配置easycom组件模式

此配置需要在项目根目录的pages.json中进行。 

// pages.json
{
	// 如果您是通过uni_modules形式引入uView,可以忽略此配置
	"easycom": {
		"^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue"
	},
	
	// 此为本身已有的内容
	"pages": [
		// ......
	]
}

uni-app为了调试性能的原因,修改easycom规则不会实时生效,配置完后,需要重启HX或者重新编译项目才能正常使用uView的功能。

 请确保您的pages.json中只有一个easycom字段,否则请自行合并多个引入规则。

 如果您是通过uni_modules形式引入uView,可以忽略

 5、组件使用

已Keyboard 键盘为例Keyboard 键盘 | uView 2.0

 八、uni-app项目上使用 uCharts echarts

uCharts官网:https://www.ucharts.cn/v2/#/demo/index

下载地址:https://www.ucharts.cn/v2/#/dwonload/index

将下载的qiun-data-charts文件放到uni_modules文件中。无需配置可在代码中直接使用。

 ucharts最详细教程(含踩坑记录) - 掘金 (juejin.cn)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uni-app开发总结分享 的相关文章

  • 虚拟机升级glibc(libc), 导致段错误等问题

    由于确实glibc高版本 需要升级glibc 导致出现段错误等信息 只剩下pwd cd等命令可以执行 这个时候需要靠补全命令查询到原系统使用的libc 2 xx文件 然后使用sln 原系统的重新索引libc so 6文件 sln lib64
  • SOA是什么?

    写这样的blog很容易被人砸砖头 而且我现在在专心做BPEL的研究 http hongsoft iteye com admin blogs 287353 也没有必要现在趟这个混水 不过想想 还是有话要说 定义 SOA是一种做架构的范式 这个
  • FreeSwitch数据库

    Freeswitch数据库 一 ODBC DSN 1 概念 ODBC 开放数据库连接 Open Database Connectivity ODBC https baike baidu com item ODBC 是为解决异构数据库间的数据
  • 线性回归(两种方式代码实现)

    方式一 最小二乘法 正规方程 公式推导 其中 代码实现 1 导入库 import numpy as np from sklearn datasets import load boston boston load boston x bosto
  • 前端面试总结及建议

    最近 由于项目组刚成立不久 团队处于天地初开的混沌状态 人员配置不齐 急需一大股新鲜血液融入 为此 开启了一段时间与求职面试者的博弈之路 如今的IT大环境 似乎每个公司一年四季都处于招人状态 而同时又有一大批无论是离职还是在职人员期许找一个

随机推荐

  • Linux操作命令笔记

    Linux Linux的字母大小写 下载和卸载 软件更新 查看空间使用情况 当前目录所在的位置 查看文件中的内容 查看目录下的文件 重启 关机 移动文件 磁盘管理软件 修改权限 删除文件或文件夹 新建文件夹 移动一个文件夹 文件重命名 编译
  • CMake中define_property的使用

    CMake中的define property命令用于定义和记录自定义属性 其格式如下 define property
  • 轻量微调和推理stanford_alpca

    当前的Alpaca模型是在Self Instruct论文中使用的技术生成的52K条指令数据 从7B LLaMA模型微调而来 并进行了一些修改 A10 gpu显存 22G cu117 驱动470 103 01 absl py 1 4 0 ac
  • 图形化界面

    文章目录 一 引入图形化界面 二 关于Easyx的基本函数操作 2 1颜色配比函数 2 2EasyX的坐标 有负数区分 2 3窗口函数函数 三 关于Easyx的实际操作 代码实现 3 1颜色操作的代码实现原理 3 2坐标操作的代码实现原理
  • uview ,uniapp 的UI组件

    文档 https www uviewui com components picker html
  • 高手勿进!写给初中级程序员以及还在大学修炼的“准程序员”的成长秘籍

    1 不要畏惧英文 互联网上很多优秀的技术资源和社区的内容都是英文 如果畏惧英文 就没办法从中汲取富有营养的知识 也没办法跟上技术的发展潮流 那么技术能力就会很难再上一层 技术的眼界就会受限 所以需要去突破语言这关 A 从改变语言环境开始 你
  • 【最详细附源码】R语言4.3.0全新安装教程

    软件下载 软件 R语言 版本 4 3 0 语言 简体中文 大小 77 74M 安装环境 Win7及以上版本 64位操作系统 硬件要求 CPU 2 0GHz 内存 4G 或更高 下载通道 百度网盘丨64位下载链接 https pan baid
  • springcloud整合Hystrix,实现接口服务降级

    利用Hystrix对接口control层进行服务降级 新建子工程service03 作为测试Hystrix服务降级的微服务 pom xml
  • nginx 之 proxy_pass详解

    在nginx中配置proxy pass代理转发时 如果在proxy pass后面的url加 表示绝对根路径 如果没有 表示相对路径 把匹配的路径部分也给代理走 假设下面四种情况分别用 http 192 168 1 1 proxy test
  • 工作十年的程序员,总结的前端面试题!

    1 常用那几种浏览器测试 有哪些内核 Layout Engine 1 浏览器 IE Chrome FireFox Safari Opera 2 内核 Trident Gecko Presto Webkit 2 说下行内元素和块级元素的区别
  • 贝叶斯网络结构学习约束的帕累托(pareto)最优

    约束 无非要考虑两件事 一是算法的结果准确率 二是算法的运行速度 约束算法的帕累托 pareto 最优就是指在保证算法准确性不降的前提下 使得算法的运行速度达到最快 就实现了帕累托最优 在已知贝叶斯网络标准结构的情况下对贝叶斯网络结构进行学
  • 人工智能之数学(概率方面)

    我们经常使用的统计机器学习算法 或者是神经网络模型中 数学作为最基础的根基 融合了高等数学中的微分学 概率 线性代数 凸优化等方面 每一个方面深入后都是有很多的益处 但是本着先实用 在进行学习的原则 所以主要是理解相关数学符号 理解统计学习
  • RocketMQ吐血总结

    RocketMQ吐血总结 架构 概念模型 最基本的概念模型与扩展后段概念模型 存储模型 RocketMQ吐血总结 User Guide RocketMQ是一款分布式消息中间件 最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统 满足线
  • 矩阵分解(1)-- 矩阵分解之LU、LDLT、Cholesky分解

    1 分类 矩阵分解 decomposition factorization 是多半将矩阵拆解为数个三角形矩阵 triangular matrix 依使用目的的不同 可分为几类 与线性方程解法相关的矩阵分解 LU分解 奇异值分解 QR分解 极
  • 使用Tmux的基本操作与后台运行命令

    文章目录 Tmux简介 Tmux安装 Tmux基本使用 Tmux后台运行程序 Tmux简介 Tmux是 终端复用器 经常看到这种说法 它是可以把一次会话中的命令记录下来的工具 会话 终端 命令 程序的关系是 终端 交互的工具 gt 会话 一
  • 初始化字典的6种方式

    查了这么多资料 我就选取几个最常见的初始化字典的方法来说明一下吧 1 最直观 最易懂的 dic1 1years 1 2years 2 3years 3 4years 4 5years 5 2 dic2 dict t 1 p 2 注意 其中等
  • Sqli-labs靶场笔记5(Less8 布尔型注入)

    Less8跟之前的Less5 Less6一样 也可以用布尔型注入来做 我们简单的测试就可以知道闭合方式也是 所以关于原理部分就不写了 有疑惑的可以直接看我前面的博客 下面直接给出具体payload 报数据库名 id 1 and substr
  • 武邑中学2021高考成绩查询,武邑中学高考成绩

    问 衡水武邑中学怎么样 答 收费2 3万 大前年中考400多分的进衡水二中的去年高考600多分 而中考400多分去武中的去年高考300分都不到 这可是有名有姓的真人的真实情况 光复习生每年就60多个班 应届考生30多个班 每年六七千人都抬不
  • 箭头函数()=>{}与function的区别

    1 箭头函数与function定义函数的写法 function function fn a b return a b arrow function var foo a b gt return a b 2 this的指向 使用function
  • uni-app开发总结分享

    目录 一 uni app介绍 二 uni app和vue的具体区别 1 组件 标签的变化 2 js 3 uniapp自带路由和请求方式 三 环境搭建 1 安装HbuilderX 2 创建uni app项目 四 项目目录结构 五 运行uni