《uniapp跨平台开发——知识总结》

1、uni-app的简介与环境搭建

1.1uniapp 简介

uniapp 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到多个平台

1.2uniapp 优势

1.多端泛滥

2.体验不好

3.生态不丰富

于是针对解决跨平台开发存在问题的 uniapp 顺势而生。

产品特征
1.跨平台更多

2.运行体验更好:

组件、api 与原生小程序一致

兼容 weex 原生渲染,效率高,局部渲染

3.通用技术栈,学习成本更低

vue 的语法,微信小程序的 api
内嵌 mpvue
4.开放生态。组件更丰富

支持通过 npm 安装第三方包
支持微信小程序自定义组件及 SDK
兼容 mpvue 组件及项目
App 端支持和原生
uniapp 功能框架
uniapp 在跨平台的过程中,可以调用平台专有能力。
————————————————

1.3环境搭建

1.安装编辑器:HBuilderX

  • H 是 HTML 的首字母
  • Builder 是构造者
  • X 是 HBuilder 的下一代版本。

我们也简称HX

HBuilderX 是通用的前端开发工具,但为uniapp做了特别强化

下载 App 开发版,可开箱即用;如下载标准版,在运行或发行uniapp时,会提示安装uniapp插件,插件下载完成后方可使用。

如使用cli方式创建项目,可直接下载标准版,因为 uniapp 编译插件被安装到项目下了。

HBuilderX 的特点如下图所示:

轻巧、极速10M的绿色发行包,启动/大文档打开速度极快,有编码提示。
强大的语法提示一流的ast语法分析能力,语法提示精准、全面、细致,转到定义、重构完善。
专为vue打造提供比其他工具优秀的vue支持,提升vue开发效率。
清爽护眼界面十分清爽简介。
高效极客操作HBuilderX对字处理提供了更崇高的支持。更强大的多光标、智能双击、选区管理...
markdown优先HX是唯一一个新建文件默认类型是markdown的编辑器,你可以直接粘贴表格、图片进来。

1.4创建 uniapp

步骤:在点击工具栏里的文件 -> 新建 -> 项目,然后我们会看见新建项目的弹窗,默认为普通项目,我们手动选择第二个 uniapp,手动输入项目名,系统会填入默认路径,但是个人可以根据需要进行修改,点击预览即可。

  • page:存放所有的页面。

  • static:存放静态资源(比如图片,视频,字体,图标等)。

  • unpackage:即打包目录,存放各个平台最终打包输出的文件。

  • App.vue:项目根组件,所有页面都是在 App.vue 下进行切换的,是页面入口文件,可以调用应用的生命周期。

  • main.js:项目入口文件,主要作用是初始化 vue 实例并使用需要的插件

  • manifest.json:是应用的配置文件,用于指定应用的名称、图标、权限等。

  • pages.json:用来对 uniapp 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生 tabbar 等

  • uni.scss:为了方便整体控制应用的风格,如按钮颜色、边框风格,本文件里预置了一批 scss 变量预置。

1.5运行项目

步骤:在点击工具栏里的运行 -> 运行到浏览器 -> Chrome/Firefox/IE/Edge 等任意一个浏览器都可,首推 Chrome

运行成功之后,终端会有对应的提示

1.6开发规范

为了实现多端兼容综合考虑编译速度运行性能等因素,uniapp有如下开发规范:

  • 页面文件遵循Vue 单文件组件(SFC)规范
<template>
  <view>此处必须有一个view,且只能有一个根view。所有内容需要写这个view里面。</view>

</template>
<script>
   export default{}
</script>
<style>
/style>
  • 组件标签靠近小程序规范。

  • 接口能力(JS API)靠近微信小程序规范,但需将前缀 wx 替换为 uni。

  • 数据绑定及事件处理同 Vue.js 规范,同时补充了 App 及页面的生命周期。

  • 为兼容多端运行,推荐建议使用flex布局进行开发。

2、uni-app基础知识总结

2.1介绍项目目录和文件作用

  • pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等
  • manifest.json 文件是应用的配置文件,用于指定应用的名称、图标、权限等。
  • App.vue是我们的跟组件,所有页面都是在App.vue下进行切换的,是页面入口文件,可以调用应用的生命周期函数。
  • main.js是我们的项目入口文件,主要作用是初始化vue实例并使用需要的插件。
  • uni.scss文件的用途是为了方便整体控制应用的风格。比如按钮颜色、边框风格,uni.scss文件里预置了一批scss变量预置。
  • unpackage就是打包目录,在这里有各个平台的打包文件
  • pages所有的页面存放目录
  • static静态资源目录,例如图片等
  • components组件存放目录

为了实现多端兼容,综合考虑编译速度、运行性能等因素,uni-app 约定了如下开发规范:

  • 页面文件遵循 Vue 单文件组件 (SFC) 规范
  • 组件标签靠近小程序规范,详见uni-app 组件规范
  • 接口能力(JS API)靠近微信小程序规范,但需将前缀 wx 替换为 uni,详见uni-app接口规
  • 数据绑定及事件处理同 Vue.js 规范,同时补充了App及页面的生命周期
  • 为兼容多端运行,建议使用flex布局进行开发

2.2全局配置和页面配置

2.2.1通过globalStyle进行全局配置

用于设置应用的状态栏、导航条、标题、窗口背景色等

属性类型默认值描述
navigationBarBackgeoundColorHexColor#F7F7F7导航栏背景颜色(同状态栏背景色)
navigationBarTextStyleStringwhite导航栏标题颜色及状态栏前景颜色,仅支持black/white
navigationBarTitle TextString导航栏标题文字内容
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStyleStringdark下拉loading的样式,仅支持dark/ligth
enablePullDownRefreshBooleanfalse是否开启下拉刷新,详见页面生命周期
onReachBottomDistanceNumber50页面上拉触底时距页面底部距离,单位只支持px,详见页面生命周期

2.3创建新的message页面

右键pages新建message目录,在message目录下右键新建.vue文件,并选择基本模板

<template>
   <view>
     这是信息页面
</view>
</template>


<script>
</script>


<style></style>

通过pages来配置页面

属性类型默认值描述
pathString配置页面路径
styleObject配置页面窗口表现,配置项参考pageStyle

pages数组数组中第一项表示应用启动页

"pages": [ 、
		{
			"path":"pages/message/message"
		},
		{
			"path": "pages/index/index",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		}
	]

通过style修改页面的标题和导航栏背景色,并且设置h5下拉刷新的特有样式

"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
		{
			"path":"pages/message/message",
			"style": {
				"navigationBarBackgroundColor": "#007AFF",
				"navigationBarTextStyle": "white",
				"enablePullDownRefresh": true,
				"disableScroll": true,
				"h5": {
					"pullToRefresh": {
						"color": "#007AFF"
					}
				}
			}
		}
	]

配置tabbar
如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页。

  • 当设置 position 为 top 时,将不会显示 icon
  • tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。

属性说明:

属性类型必填默认值描述
colorHexColortab上的文字默认颜色
selectedColorHexColortab上的文字选中的颜色
backgroundColorHexColortab的背景色
borderStyleStringblacktabbar上边框的颜色,仅支持black/whith
listArraytap的列表,详见list属性说明,最少2个,最多5个tap
positionStringbottom可选值bottom、top

其中 list 接收一个数组,数组中的每个项都是一个对象,其属性值如下:

属性类型必填说明
pagePathString页面路径,必须在pages中先定义
textStringtap上按钮文字,在5+APP和H5平台为非必填。列如中间可放一个没有文字的+号图标
iconPathString图片路径,icon大小限制为40kb,建议尺度为81px*81px,当postion为top时,此参数无效,不支持网络图片,不支持字体图标
selectedlconPathString选中时的图片路径,icon大小限制为40kb,建议尺寸为81px*81px,当postion为top时,词参数无效

案例代码:

"tabBar": {
		"list": [
			{
				"text": "首页",
				"pagePath":"pages/index/index",
				"iconPath":"static/tabs/home.png",
				"selectedIconPath":"static/tabs/home-active.png"
			},
			{
				"text": "信息",
				"pagePath":"pages/message/message",
				"iconPath":"static/tabs/message.png",
				"selectedIconPath":"static/tabs/message-active.png"
			},
			{
				"text": "我们",
				"pagePath":"pages/contact/contact",
				"iconPath":"static/tabs/contact.png",
				"selectedIconPath":"static/tabs/contact-active.png"
			}
		]
	}
condition启动模式配置

启动模式配置,仅开发期间生效,用于模拟直达页面的场景,如:小程序转发后,用户点击所打开的页面。

属性说明:

属性类型是否必填描述
currentNumber当前激活的模式,list节点的索引值
listArray启动模式列表

list说明:

属性类型是否必填描述
nameString启动模式名称
pathString启动页面路径
quetyString启动参数,可在页面的onLoad函数里获得

组件的基本使用

uni-app提供了丰富的基础组件给开发者,开发者可以像搭积木一样,组合各种组件拼接称自己的应用

uni-app中的组件,就像 HTML 中的 div 、pspan 等标签的作用一样,用于搭建页面的基础结构

text文本组件的用法
001 - text 组件的属性
属性类型默认值必填说明
selectablebooleanfalse文本是否可选
spacestring.显示连续空格,可选参数:enspemspnbsp
decodebooleanfalse是否解码
  • text 组件相当于行内标签、在同一行显示
  • 除了文本节点以外的其他节点都无法长按选中
002 - 代码案例
<view>
  <!-- 长按文本是否可选 -->
  <text selectable='true'>来了老弟</text>
</view>

<view>
  <!-- 显示连续空格的方式 -->
  <view>
    <text space='ensp'>来了  老弟</text>
  </view>
  <view>
    <text space='emsp'>来了  老弟</text>
  </view>
  <view>
    <text space='nbsp'>来了  老弟</text>
  </view>
</view>

<view>
  <text>skyblue</text>
</view>

<view>
  <!-- 是否解码 -->
  <text decode='true'>&nbsp; &lt; &gt; &amp; &apos; &ensp; &emsp;</text>
</view>

view视图容器组件的用法

View 视图容器, 类似于 HTML 中的

 002 - 代码案例

<view class="box2" hover-class="box2_active">
  <view class='box1' hover-class='active' hover-stop-propagation :hover-start-time="2000" :hover-stay-time='2000'>

  </view>
</view>
button按钮组件的用法
001 - 组件的属性
属性名类型默认值说明
sizeStringdefault按钮的大小
typeStringdefault按钮的样式类型
plainBooleanfalse按钮是是否镂空,背景色透明
disabledBooleanfalse是否按钮
loadingBooleanfalse名称是否带loading图标

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值