linux cpu占用率如何看
311
2022-09-27
uni-app框架介绍(3)
开发规范:
为了实现多端兼容,综合考虑编译速度、运行性能等等因素,uni-app 约定了如下开发规范:
目录结构:
一个 uni-app工程,默认包含如下目录和文件:
注意:
static 目录下的 js 文件不会被编译,如果里面有 es6 的代码,不经过转换直接运行,在手机设备上会报错css、less/scss 等资源文件同样不要放在 static 目录下,建议这些公用的资源放在 common 目录下HBuilderX 1.9.0+ 支持在根目录创建 ext.json、sitemap.json 文件
资源路径说明:
模板内引入静态资源:
在 template 标签中 通过 image、video等标签的 src 属性引入静态资源时,可以使用相对路径或绝对路径,如下代码:
注意:
js文件引入:
js 文件或 script 标签内(包括renderjs等)引入 js 文件时,可以使用相对路径和绝对路径,形式如下:
// 绝对路径,@指向项目根目录,在cli项目中@指向src目录import add from '@/common/add.js'// 相对路径import add from '../../common/add.js'
注意:
js 文件不支持使用 / 开头的方式引入。
css引入静态资源:
css 文件或 style标签 内引入 css 文件(scss、less文件同理)时,可以使用相对路径或绝对路径,如下代码:
/* 绝对路径 */@import url('/common/uni.css');@import url('@/common/uni.css');/* 相对路径 */@import url('../../common/uni.css');
注意:
自 HBuilderX 2.6.6-alpha 起支持绝对路径引入静态资源,旧版本不支持此种方式。
/* 绝对路径 */background-image: url(/static/logo.png);background-image: url(@/static/logo.png);/* 相对路径 */background-image: url(../../static/logo.png);
注意:
1、引入字体图标请参考 字体图标
2、 @ 开头的绝对路径以及相对路径会经过base64 转换规则校验
3、不支持本地图片的平台,小于40kb,一定会转 base64 (共四个平台mp-weixin, mp-qq, mp-toutiao, app v2)
4、h5平台,小于4kb会转base64,超出4kb时不转
5、其余平台不会转 base64
在 .vue 文件中进入外部 css 文件,如下示例代码:
生命周期:
应用生命周期:
uni-app 支持如下应用生命周期函数:
函数名 | 说明 |
onLaunch | 当uni-app初始化完成以后会触发(全局只会触发一次) |
onShow | 当 uni-app 启动,或从后台进入前台显示 |
onHide | 当 uni-app 从前台进入后台 |
onError | 当 uni-app 报错时触发 |
onUniNViewMessage | 当 nvue 页面发送的数据进行监听,可参考 nvue 向 vue 通讯 |
onUnhandledRejection | 对未处理的 Promise 拒绝事件监听函数 (2.8.1+) |
注意:
1、应用的生命周期函数仅可在 App.vue 中监听,在其他页面监听无效。
2、onlaunch 里进行页面跳转,如遇白屏报错,请参考 中的生命周期函数示例:
页面生命周期:
uni-app 支持如下页面生命周期函数:
onPageScroll 参数说明:
属性 | 类型 | 说明 |
scrollTop | Number | 页面在垂直方向已滚动的距离(单位px) |
onTabItemTap 参数说明:
注意:
3、onTabItemTap 在 App 端,从HBuilder X 1.9 的自定义组件编译模式开始支持。
4、避免在 onShow 里使用需要权限的 API(比如 setScreenBrightness() 等需要手机权限),可能会再次触发 onShow 造成死循环。
onNavigationBarButtonTap 参数说明:
属性 | 类型 | 说明 |
index | Number | 原生标题栏按钮数组的下标 |
onBackPress 回调参数对象说明:
属性 | 类型 | 说明 |
form | String | 触发返回行为的来源:'backbutton'--左上角导航栏按钮及安卓返回键; 'navigateBack'--uni.navigateBack() 方法 |
export default { data() { return {}; }, onBackPress(options) { console.log('from:' + options.from) }}
注意:
me.vue 文件
路由:
路由跳转:
uni-app 有两种页面路由跳转方式,一个使用 navigator组件跳转,二是调用 API跳转。
页面栈:
框架以栈的形式管理当前所有页面,当发生路由切换的时候,页面栈的表现如下:
运行环境判断:
开发环境和生产环境:
uni-app 可通过 process.env.NODE_ENV 判断当前环境是开发环境还是生产环境。一般用于连接测试服务器还是正式服务器的动态切换。
if(process.env.NODE_ENV === 'development'){ console.log('开发环境')}else{ console.log('生产环境')}
如果你需要自定义更多环境,比如测试环境:
1、 如果你只需要对某一个平台配置,可以在 package.json 中配置,在HBuilderX的运行和发行菜单里会多一个出来,详见 vue-config.js 中配置,详见 #ifdef H5 alert("只有h5平台才有alert方法")// #endif
如上代码只会编译到 H5 的发行包 里,其它平台的包不会包含如上代码。
2、运行期判断
switch(uni.getSystemInfoSync().platform){ case 'android': console.log('运行Android上') break; case 'ios': console.log('运行iOS上') break; default: console.log('运行在开发者工具上') break;}
如有必要,也可以在条件编译里自定义一个变量,赋不同的值,在后续运行代码中动态判断环境。
页面样式与布局:
尺寸单位:
uni-app 支持的通用的 css 单位,包括px、rpx
px 即屏幕像素rpx 即响应式px,一种根据屏幕宽度自适应的动态单位。以750宽的屏幕为基准,750rpx恰好为屏幕的宽度。屏幕变宽,rpx实际显示效果会等比放大。
vue 页面支持普通的 H5 单位,但在 nvue 里不支持:
nvue 还不支持 百分比 单位。
App 端,在pages.json 里的 titleNView 或页面里写 plus api 中涉及的单位,只支持px,不支持rpx。
样式导入:
内联样式:
选择器:
目前支持的选择器有:
注意:
page { background-color:#ccc;}
全局样式与局部样式:
定义在 App.vue 中的样式为全局样式,作用于每一个页面。
在 pages 目录下的 vue 文件中定义的样式为 局部样式,只作用于对应的页面,并会覆盖 App.vue 中相同的选择器。
注意:
App.vue 中通过 @import 语句可以导入外联样式,一样作用于没一个页面。nvue 页面暂时不支持全局样式
CSS变量:
固定值:
Flex布局:
背景图片:
字体图标:
uni-app 支持使用字体图标,使用方式与普通 web 项目相同,需要注意以下几点:
为方便开发者,在字体文件小于 40kb 时,uni-app 会自动将其转化为 base64 格式;字体文件大于等于 40kb,仍转换为 base64 方式使用的话可能有性能问题,如开发者必须使用,则需自己将其转换为 base64 格式使用,或将其挪到服务器上,从网络地址引用;字体文件的引用路径推荐使用以 ~@ 开头的绝对路径。
@font-face { font-family: test1-icon; src: url('~@/static/iconfont.ttf'); }
nvue中不可直接使用css的方式引入字体文件,需要使用以下方式在js内引入。nvue内不支持本地路径引入字体,请使用网络链接或者base64形式。src字段的url的括号内一定要使用单引号。
var domModule = weex.requireModule('dom');domModule.addRule('fontFace', { 'fontFamily': "fontFamilyName", 'src': "url('和
globalStyle(全局样式配置):
用于设置应用的状态栏、导航条、标题、窗口背景色等,主要在pages.json中进行配置
pages.json 文件
{ "pages": [{ "path": "pages/index/index", "style": { "navigationBarTitleText": "uni-ui基础项目" } }], "globalStyle": { "navigationBarTextStyle": "white", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#007AFF", "backgroundColor": "#FFFFFF" }}
配置项如下:
注意
pages(局部页面样式配置):
uni-app 通过 pages 节点配置应用由哪些页面组成,pages 节点接收一个数组,数组每个项都是一个对象,其属性值如下:
属性 | 类型 | 默认值 | 描述 |
path | String | | 配置页面路径 |
style | Object | | 配置页面窗口表现,配置项参考下方 pageStyle |
注意:
pages节点的第一项为应用入口页(即首页)应用中新增/减少页面,都需要对 pages 数组进行修改文件名不需要写后缀,框架会自动寻找路径下的页面资源
style对象配置
pages对象中的style 对象用于设置每个页面的状态栏、导航栏、标题、窗口背景色等
页面中配置项会覆盖 globalStyle 中相同的配置项,具体配置项如下:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~