uni-app 框架超详细新手入门_uni框架-程序员宅基地

技术标签: 前端  js  javascript  uni-app  

什么是uni-app?(介绍)

uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架。
开发者通过编写 Vue.js 代码,uni-app 将其编译到iOS、Android、微信小程序等多个平台,保证其正确运行并达到优秀体验。

uni-app 继承自 Vue.js,提供了完整的 Vue.js 开发体验。
uni-app 组件规范和扩展api与微信小程序基本相同。

有一定 Vue.js 和微信小程序开发经验的开发者可快速上手 uni-app ,开发出兼容多端的应用。

uni-app提供了条件编译优化,可以优雅的为某平台写个性化代码、调用专有能力而不影响其他平台。

uni-app打包到App时仍然使用了5+引擎,5+的所有能力都可以在uni-app中可以使用。在App端运行性能和微信小程序基本相同。

对于技术人员而言:不用学那么多的平台开发技术、研究那么多前端框架,学会基于vue的uni-app就够了。
对于公司而言:更低成本,覆盖更多用户,uni-app是高效利器
 

uni-app的优点

  1. uni-app是一套可以适用多端的开源框架,一套代码可以同时生成ios,Android,H5,微信小程序,支付宝小程序,百度小程序等。
  2. uni-app对前端开发人员比较友好,学习成本比较低,首先uni-app是基于vue.js的。其次封装的组件和微信小程序的组件一模一样,所以对于现在的主流前端人员来说学习几乎为零,如果你作为一个前端,没有接触过vue和微信小程序的话那建议你多去加加油。
  3. uni-app使用HBX进行开发,HBX对于vue语法等支持可以说是比较完备了。使用HBX进行开发可以说是速度杠杠的。开发速度比较快
  4. uni-app拓展能力强,封装了H5+,支持nvue,也支持原生Android,ios开发。可以将原有的移动应用和H5应用改成uni-app应用。
  5. uni-app是DCloud出品的,属于国产,对于国产我们当然要支持一下
     

uni-app的缺点

  1. uni-app问世的时间还比较短,有很多地方还不是完善,坑很多,建议不喜欢爬坑的朋友那就少用uni-app。
  2. 对于使用中的一些bug及问题,官方回应的不是很及时。
     

uni-app的功能框架浏览图

在这里插入图片描述
 

工具安装

首先开发者需先下载安装 HBuilderX
在这里插入图片描述
接着在HBuilderX 点击工具栏里的文件 -->新建 -->项目:
在这里插入图片描述
创建uni-app
在这里插入图片描述

项目结构介绍

在这里插入图片描述
 
目录结构基本和小程序的目录结构相似,只是多了个基础组件的文件夹;
uni-app有自己的插件库,直接点击安装即可,而且,它也支持npm包管理,点击 工具 >> 插件安装 即可配置
在这里插入图片描述
 

uni-app开发规范

为了实现微信小程序、原生App的跨端兼容,综合考虑编译速度、运行性能等因素,uni-app 约定了如下开发规范:

页面文件遵循 Vue 单文件组件 (SFC) 规范
每个 .vue 文件包含三种类型的顶级语言块:
1.最多包含一个<template></template>模板模块
2.最多包含一个<script></script>脚本模块
3.可以包含一个或多个<style></style>样式模块,标签可以有scoped或者module属性,不同封装模式的多个style可以在同一个组件中混合使用,如可包含css、sass、less等多种封装模式。
Tips:允许添加可选的自定义块,支持导入自定义块,需要注意的是 src 导入遵循和 webpack 模块请求相同的路径解析规则,这意味着相对路径需要以 ./开始

组件标签靠近微信小程序规范,所以有微信开发经验的话将会飞速上手uni-app,没有经验也不要怕,即使不会微信小程序也会快速上手。
注意:不能使用标准HTML标签,也不能用js对dom进行操作

接口能力(JS API)靠近微信小程序规范,不过前缀 wx 需要替换为 uni

数据绑定及事件处理靠近 Vue.js 规范,同时补充了App及页面的生命周期,为兼容多端运行,建议使用flex布局进行开发
 

uni-app的样式与布局

注意:请删除 app.vue 中的全局样式:view{
    display:flex;} 在需要flex的时候使用flex即可。
尺寸单位

uni-app框架目前仅支持长度单位 px 和 %。与传统 web 页面不同,px 是相对于基准宽度的单位,已经适配了移动端屏幕,其原理类似于 rem。
PS:uni-app 的基准宽度为 750px。
开发者只需按照设计稿确定框架样式中的 px 值即可。设计稿 1px 与框架样式 1px 转换公式如下:设计稿 1px / 设计稿基准宽度 = 框架样式1px / 750px
换言之,页面元素宽度在uni-app中的宽度计算公式:750px * 元素在设计稿中的宽度 / 设计稿基准宽度

举例说明:

若设计稿宽度为 640px,元素 A 在设计稿上的宽度为 100px,那么元素 A 在uni-app里面的宽度应该设为:750 * 100 / 640,结果为:117px。

若设计稿宽度为 375px,元素 B 在设计稿上的宽度为 200px,那么元素 B 在uni-app里面的宽度应该设为:750 * 200 / 375,结果为:400px。

样式导入

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

示例代码:
<style>
    @import "../../common/uni.css";
    .uni-card {
    
        box-shadow: none;
    }
</style>
内联样式

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

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

<view style="color:{
    {color}};" />

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

<view class="normal_view" />
选择器

目前支持的选择器有:
.class .intro 选择所有拥有 class=“intro” 的组件
#id #firstname 选择拥有 id=“firstname” 的组件
element view 选择所有 view 组件
element, element view, checkbox 选择所有文档的 view 组件和所有的 checkbox 组件
::after view::after 在 view 组件后边插入内容,仅微信小程序和5+App生效
::before view::before 在 view 组件前边插入内容,仅微信小程序和5+App生效

全局样式与局部样式

定义在 App.vue 中的样式为全局样式,作用于每一个页面。在 pages 目录下 的 vue 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 App.vue 中相同的选择器。
注意: App.vue 中通过 @import 语句可以导入外联样式,一样作用于每一个页面。

Flex布局

为支持跨平台,框架建议使用Flex布局,关于Flex布局可以参考外部文档A Complete Guide to Flexbox等。
 

注意

1.请删除 app.vue 中的全局样式:view{display:flex;} 在需要flex的时候使用flex即可。
2.App.vue 中通过 @import 语句可以导入外联样式,一样作用于每一个页面。
 

总结

本篇文章介绍了 uin-app 框架的介绍, 安装, 创建, 和基本的样式与布局,如有任何疑问请移步官网

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chen4565/article/details/118312354

智能推荐

c# ( winform )/ javaswing 通信录管理系统源码_winform通讯录源码-程序员宅基地

文章浏览阅读48次。c#(winform)/javaswing 通信录管理系统源码此系统同时支持mysql,sqlserver,sqlite三种数据库,有javaswing窗体和C#窗体两套代码。_winform通讯录源码

sharding-datasource之JPA基于MultiTenant动态切换数据源_currenttenantidentifierresolver-程序员宅基地

文章浏览阅读1.1k次。介绍基于sharding-datasource, jpa进行分库操作, 基于AbstractDataSourceBasedMultiTenantConnectionProviderImpl, CurrentTenantIdentifierResolver动态切换数据源SaaS服务多租户介绍,每个租户的资源都是独立的,从入口到应用部署到数据,都是完全隔离的。每个租户相当于“托管”在提供服务的公司里面,公司做的其实是统一运维。好处在于,这个隔离非常彻底,基本不太会有相互影响;如果有特殊客户要求的定制化,_currenttenantidentifierresolver

Good Site-程序员宅基地

文章浏览阅读106次。[url=http://d.hatena.ne.jp/ntaku/searchdiary?word=%2A%5BAndroid%5D][Android]Androidの開発環境構築[/url][url]http://www.adakoda.com/android/000062.html[/url][url]http://www.cnmsdn.com/t/12/[/url][url]ht...

50w字+的Java技术类校招面试题汇总,HR的话扎心了_50w 面试-程序员宅基地

文章浏览阅读165次。前言刚刚过去的双十一,让“高性能”“高可用”“亿级”这3个词变成了技术热点词汇,也让很多人再次萌发成为「架构师」的想法。先问大家一个问题:你觉得把代码熟练、完成需求加上点勤奋,就能成为架构师么?如果你这么认为,那你注定只能是“码农”。从业这么多年,我见过太多普通程序员做到架构师的例子,但更多的人在听话地把需求做出来,既不考虑更优解,也不考虑技术原理,重复千篇一律的代码,以为只要代码写的好就能做「架构师」前段时间,还有哥们儿吐槽说,他们公司的架构师编程能力还不如他,伤感自己”怀才不遇“。但其实,架构师看的是_50w 面试

数据结构与算法之快速排序_数据结构快速排序-程序员宅基地

文章浏览阅读1.3w次,点赞12次,收藏25次。快速排序概念 代码实现 时间复杂度_数据结构快速排序

【路径规划】蚁群算法栅格地图路径规划及避障【含Matlab源码 2088期】_格栅地图蚁群算法-程序员宅基地

文章浏览阅读768次。蚁群算法栅格地图路径规划及避障完整的代码,方可运行;可提供运行操作视频!适合小白!_格栅地图蚁群算法

随便推点

巨杉数据库 CTO 王涛:新一代分布式数据库-程序员宅基地

文章浏览阅读944次。2019数据技术嘉年华于11月16日在京落下了帷幕。大会历时两天,来自全国各地上千名学术精英、数据库领袖人物、数据库专家、技术爱好者在这里汇聚一堂,围绕“开源 • 智能 ..._巨杉数据库 王涛

最全css居中:水平居中+垂直居中+水平/垂直居中总结_style 水平居中-程序员宅基地

文章浏览阅读285次。一.水平居中1. 行内元素<style> #father { width: 500px; height: 300px; background-color: skyblue; text-align: center; //看父级是否为块级元素,是则父级设置text-align:center //如果不是:父级先设置为块级元素,然后再居中 (即display:block ;text-alig_style 水平居中

【愚公系列】2024年02月 《网络安全应急管理与技术实践》 015-网络安全应急技术与实践(Web层-文件上传漏洞)-程序员宅基地

文章浏览阅读2.7w次,点赞8次,收藏9次。文件上传漏洞是指网站对于用户上传文件的验证过程不严格,导致攻击者可以上传恶意文件到服务器上执行任意代码或者获取敏感信息的安全漏洞。安全问题说明1. 代码执行攻击者可以上传包含恶意代码的可执行文件,通过执行这些代码来攻击服务器,例如获取敏感信息、操控服务器等。上传的可执行文件中包含恶意代码,攻击者可以通过执行该代码来实现攻击目的。2. 文件覆盖攻击者可以通过上传同名文件覆盖服务器上的原始文件,导致原始文件的内容被篡改或者删除。

从数据仓库到大数据,数据平台这25年是怎样进化的?[转]-程序员宅基地

文章浏览阅读76次。从数据仓库到大数据,数据平台这25年是怎样进化的?大数据平台 [email protected]年前 (2016-03-23)5778℃2评论从「数据仓库」一词到现在的「大数据」,中间经历了太多的知识、架构模式的演进与变革。数据平台这25年究竟是怎样进化的?让InfoQ特约老司机为你讲解。我是从2000年开始接触数据仓库,大约08年开始进入互联网行业。很多从传统企业数..._从数据仓库到大数据,数据平台这 25 年是怎样进化的

关于使用Java后台导入excel文件,读取数据后,更新数据库,并返回数据给到前端的相关问题总结_excel 导入时第一条导入后将第一条的数据返回-程序员宅基地

文章浏览阅读2.2k次。在之前的项目中,使用到了Java后台读取excel文件数据的功能点,本想着该功能点已经做过了,这一类的应该都大差不离,不过在刚结束的一个项目中,现实给我深深的上了一课,特此编写此片博客,以作记录,并给自己提个醒,Java真的是浩瀚如海呀,任何时候其实自己都是小白,懂得越多越发谨慎。Java后台读取excel文件数据该功能点一般与Java导出excel文件这个功能点配合使用。实际上此次的问题与之前的最大区别在于,之前导出excel文件时,明确知道导出的数据每一列的字段详情,导入excel文件数据时,数据格_excel 导入时第一条导入后将第一条的数据返回

一例JAVA多线程访问卡死的现象_http-nio-8181-exec-4 线程过多导致卡死-程序员宅基地

文章浏览阅读6.9k次。  最近适配摄像头,自然的就要接收、传递音频视频数据。而这些数据是非常频繁的,如果每次都新建缓冲区,一个是影响性能,另外也显得自己水平太低。怎么办?上缓存。  音频、视频当然要分开缓存。代码很类似,自然的吾就新建了一个类,  起名?Manager显然不合适,叫Worker最好。Queue、Cache都不是太适合。  数据队列LinkedBlockingDeque,缓存用Concurre..._http-nio-8181-exec-4 线程过多导致卡死

推荐文章

热门文章

相关标签