uniapp心得收获

简介

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

优点

`uni-app`在开发者数量、案例、跨端抹平度、扩展灵活性、性能体验、周边生态、学习成本、开发成本等8大关键指标上拥有更强的优势。

框架

`uni-app`在跨平台的过程中,不牺牲平台特色,可优雅的调用平台专有能力,真正做到海纳百川、各取所长。

能运行到多个平台

`uni-app`实现了一套代码,同时运行到多个平台;如下图所示,一套代码,同时运行到iOS模拟器、Android模拟器、H5、微信开发者工具、支付宝小程序Studio、百度开发者工具、字节跳动开发者工具、QQ开发者工具。

实际运行效果

 

开发规范

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

一,页面文件遵循`Vue单文件组件(SFC)规范`

`.vue`文件是一个自定义的文件类型,用类 HTML 语法描述一个 Vue 组件。每个`.vue`文件包含三种类型的顶级语言块`<template>`、`<script>`和`<style>`,还允许添加可选的自定义块:模块可自己上百度搜 太多了 这里就掠过了。

目录结构

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

 

资源路径

`template`内引入静态资源,如`image`、`video`等标签的`src`属性时,可以使用相对路径或者绝对路径。

 

生命周期

1,应用生命周期

`uni-app`支持`onLaunch`、`onShow`、`onHide`等应用生命周期函数。

 

2,页面生命周期

`uni-app`支持`onLoad`、`onShow`、`onReady`等生命周期函数。

 

路由

`uni-app`页面路由为框架统一管理,开发者需要在`pages.json`里配置每个路由页面的路径及页面样式。

所以`uni-app`的路由用法与`Vue Router`不同。

路由跳转

`uni-app`有两种页面路由跳转方式:使用`navigator`组件跳转、调用API跳转。

组件跳转:

<navigator url="navigate/navigate?title=navigate" hover-class="navigator-hover">

    <button type="default">跳转到新页面</button>

</navigator>```

API跳转:

```js

uni.navigateTo({

    url: 'test?id=1&name=uniapp'

});

新建`navigator.vue`文件,添加组件跳转和API跳转,跳转到主页。

条件编译

条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。

写法:以`#ifdef`或`#ifndef`加`%PLATFORM%`开头,以`#endif`结尾。

支持的文件

 

页面样式与布局

`uni-app`的`css`与`web`的`css`基本一致。

1,尺寸单位

用下图演示

这个设计稿的宽度为375px,其中组件宽度为330px,所以组件在`uni-app`中应该是`750 * 330 / 375` = `660rpx`。

`vue`页面支持下面这些普通H5单位:

- `rem`,根字体大小可以通过`page-meta`配置;

- `vh`,`viewpoint height`,视窗高度,`1vh`等于视窗高度的`1%`;

- `vw`,`viewpoint width`,视窗宽度,`1vw`等于视窗宽度的`1%`。

新建`style.vue`文件,添加`page-meta`来设置根字体大小。

在`style.vue`中添加块,通过`vw`、`vh`来设置宽高。

2,样式导入

使用`@import`语句可以导入外联样式表,`@import`后跟需要导入的外联样式表的相对路径,用`;`表示语句结束。

在`style.vue`中添加块,添加样式表文件,设置块的宽高和背景颜色。

3,内联样式

框架组件上支持使用style、class属性来控制组件的样式。

- `style`:静态的样式统一写到class中。style接收动态的样式,在运行时会进行解析,请尽量避免将静态的样式写进style中,以免影响渲染速度。

在`style.vue`中添加块,通过内联样式,设置块的宽高和背景颜色。

class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上`.`,样式类名之间用空格分隔

4,选择器

目前支持的选择器有:

5,全局样式与局部样式

定义在`App.vue`中的样式为全局样式,作用于每一个页面。

在`pages`目录下 的`vue`文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖`App.vue`中相同的选择器。

6,css变量

uniapp提供内置CSS变量:

7,固定值

uniapp中以下组件的高度是固定的,不可修改:

8,Flex布局

为支持跨平台,框架建议使用`Flex`布局。

9,背景图片

uniapp支持使用在css里设置背景图片,使用方式与普通`web`项目大体相同,但需要注意以下几点:

- 支持`base64`格式图片。

- 支持网络路径图片。

- 小程序不支持在css中使用本地文件,包括本地的背景图和字体文件。需以`base64`方式方可使用。

- 使用本地路径背景图片时,尽量保证图片小于`40kb`。如果图片太大,需自行将其转换为`base64`格式使用,或挪到服务器上。

- 本地背景图片的引用路径推荐使用以`~@`开头的绝对路径。

- 微信小程序不支持相对路径。

10,字体图标

uniapp支持使用字体图标,使用方式与普通`web`项目相同,需要注意以下几点:

- 支持`base64`格式字体图标。

- 支持网络路径字体图标。

- 小程序不支持在css中使用本地文件,包括本地的背景图和字体文件。需以`base64`方式方可使用。

- 网络路径必须加协议头`https`。

- 使用本地路径图标字体时,尽量保证字体文件小于`40kb`。如果字体文件太大,需自行将其转换为`base64`格式使用,或挪到服务器上。

- 本地字体文件的引用路径推荐使用以`~@`开头的绝对路径。

 

字体使用示例:

新建`iconfont.vue`文件,添加字体图标。

11,NPM支持

uniapp支持使用npm安装第三方包

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值