聚沙成塔【45天玩转uni-app】初探uni-app

news2024/11/27 20:33:35

文章目录

  • 写在前面
  • DCloud
  • 当下跨平台开发存在的问题
  • 为什么选择uni-app
  • 写在最后

写在前面

聚沙成塔——每天进步一点点,大家好我是几何心凉,不难发现越来越多的前端招聘JD中都加入了uni-app 这一项,它也已经成为前端开发者不可或缺的一项技能了,所以凉哥为大家推出 聚沙成塔【45天玩转uni-app】专栏,帮助大家对 uni-app 进行学习和理解,uni-app可以通过一套代码多端发行,相信你掌握本语言后无论是毕设还是求职项目都可以说是锦上添花,妥妥加分项;快来订阅专栏跟着凉哥一起来感受 uni-app 为开发者带来的劲感吧!

DCloud

首先让我们先来了解一下 uni-app 发行者——DCloud,可能很多人对 DCloud 比较陌生,但是 DCloud 公司对于前端做出的贡献可谓是潜移默化,不世之功;很多人以为小程序是微信先推出的,其实,DCloud才是这个行业的开创者。DCloud于2012年开始研发小程序技术,优化webview的功能和性能,并加入W3C和HTML5中国产业联盟,推出了HBuilder开发工具,为后续产业化做准备。2015年,DCloud正式商用了自己的小程序,产品名为“流应用”,它不是B/S模式的轻应用,而是能接近原生功能、性能的App,并且即点即用,第一次使用时可以做到边下载边使用。为将该技术发扬光大,DCloud将技术标准捐献给工信部旗下的HTML5中国产业联盟 (opens new window),并推进各家流量巨头接入该标准,开展小程序业务。360手机助手率先接入,在其3.4版本实现应用的秒开运行。

在这里插入图片描述

随后DCloud推动大众点评、携程、京东、有道词典、唯品会等众多开发者为流应用平台提供应用。在2015年9月,DCloud推进微信团队开展小程序业务,演示了流应用的秒开应用、扫码获取应用、分享链接获取应用等众多场景案例,以及分享了webview体验优化的经验。微信团队经过分析,于2016年初决定上线小程序业务,但其没有接入联盟标准,而是订制了自己的标准。DCloud持续在业内普及小程序理念,推进各大流量巨头,包括手机厂商,陆续上线类似小程序/快应用等业务。部分公司接入了联盟标准,但更多公司因利益纷争严重,标准难以统一。技术是纯粹的,不应该因为商业利益而分裂。开发者面对如此多的私有标准不是一件正确的事情。造成混乱的局面非DCloud所愿。于是我们决定开发一个免费开源的框架。既然各巨头无法在标准上达成一致,那么就通过这个框架为开发者抹平各平台差异。这就是uni-app的由来。因为多年积累,所以DCloud拥有800多万开发者,并不意外,因为DCloud一直都有小程序的iOS、Android引擎,所以uni-app的App端和小程序端保持高度一致,并不意外,因为DCloud在引擎上的持续投入,所以uni-app的App端功能、性能比大多数小程序引擎都优秀,并不意外,因为DCloud对各家小程序太了解了,所以做好抹平各端差异的跨端框架,并不意外。

在这里插入图片描述

DCloud 公司 CEO 王安是 HTML5 中国产业联盟发起人之一,在手机刚能写程序的时候、在还没有移动互联网这个词的时候就扎进这个行业的老兵。王安在一次参访中表示 DCloud公司是围绕着HTML5做产品,有增强引擎,才能够做出很好的应用,有发行渠道流应用。希望在未来和大应用市场合作,最终打通用户和开发者之间的通路。助力开发者成本节约的同时效率提升,用户能够有更加省时省力更便捷的体验。HTML5一定会有更精彩的未来,火爆到这个世界大多数应用都是基于H5发行的运用,这是我们的一个愿景来做这个事情。

当下跨平台开发存在的问题

1、多端泛滥:那我们能够联想到前端目前的覆盖端设备太多了,iOS、Android、Web、H5、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)相信后面还会有更多的小程序和快应用被发布出来,那么随着这种多元化的端,想要覆盖被分散的多端用户开发公司势必要加大运营成本,这也导致我们前端工程师的学习成本提高,毕竟与时俱进多掌握一端的开发技术才能让我们更具竞争力;

2、体验不好:我们既然适配多端注定是为了减少开发成本 编码成本,这样一来很多跨端技术开发出的应用在用户体验上比较差劲;

3、生态不完善:很多跨端技术的学习成本比较高也就是我们通俗的比较难学,就导致技术的使用者较少那么自然这项技术的生态就会不够丰富,毕竟没有使用者就没有收益,也没有更多的问题被发现也就没有提升和完备的机会;

在这里插入图片描述

DCloud 推出的 uni-app 规避这些缺陷为开发者们提供更优质的服务;uni-app 能够跨更多端,真正做到一套代码多端发行,不再需要对各端代码并行维护和升级,而且 uni-app 具备条件编译,可以优雅的在一套代码中调用不同平台的特色功能;体验更好:组建、API与小程序一致,兼容 weex 原生渲染,既可以提升体验又不会被 weex 所限制,通用技术栈,学习成本更低:Vue的语法、微信小程序的API,内嵌mpvue,也就是说如果你会Vue和微信小程序,你就可以直接上手 uni-app 如果你还不会这两个建议快速去了解一下,毕竟非常主流的两门技术;开放生态,组件更丰富:支持通过 npm 安装第三方的包,支持微信小程序自定义组件及SDK,兼容mpvue组件及项目,app端支持和原生混合编码,DCloud 的插件市场;

为什么选择uni-app

在这里插入图片描述

开发者/案例数量更多 数百万应用、uni统计月活12亿、70+微信/qq群、更高的百度指数跨端完善度更高,真正落地的提高生产力;平台能力不受限 在跨端的同时,通过条件编译+平台特有API调用,可以优雅的为某平台写个性化代码,调用专有能力而不影响其他平台。支持原生代码混写和原生sdk集成。性能体验优秀 加载新页面速度更快、自动diff更新数据。App端支持原生渲染,可支撑更流畅的用户体验。小程序端的性能优于市场其他框架;周边生态丰富 插件市场数千款插件。支持NPM、支持小程序组件和SDK。微信生态的各种sdk可直接用于跨平台App;学习成本低 基于通用的前端技术栈,采用vue语法+微信小程序api,无额外学习成本;开发成本低 不止开发成本,招聘、管理、测试各方面成本都大幅下降。HBuilderX是高效开发神器,熟练掌握后研发效率至少翻倍(即便只开发一个平台)。下篇就会大家介绍这款 uni-app 绝配的开发神器。

现在,uni-app已经是业内最风靡的应用框架,支撑着12亿活跃手机用户的庞大生态。世界兜兜转转,当你踏出第一步时,随后很多事不会按你的预期发展。但只要你不忘初心,你想要的那个目标,最终会换个方式实现。DCloud的初心是什么?为开发者提供免费、高效的开发工具,让天下没有难做的应用,改进应用形态,让用户更方便的获取数字服务。

写在最后

本篇的内容就到这里了,欢迎大家订阅本专栏,跟随博主一起来学习 uni-app 吧,相信可以通过本专栏的学习,你也可以通过编写一套代码发布出自己的多端应用,相信他能够成为你毕设、求职项目中的亮点技术和产品;如果你想学习本专栏可以在文章末尾添加我进群一起学习交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS1可视化利器---Webviz

0. 简介 对于ROS1而言,rqt和plotjuggler是我们最常用的工具,这两个工具:rqt中嵌入了很多有用的小工具,但是它需要播放离线包,没有办法对离线包进行实时的分析。而plotjuggler支持对离线bag包进行分析,但是…

[C语言、C++]数据结构作业:用递归实现走迷宫(打印正确通路即可)

如果是非递归情况 如果当前点(方格)为出口,则成功退出 (否则) 如果可继续走(向相邻点试探),存在某个可前进 的相邻点(分支)则: 1、将当前点保存,以便回退 2、将相邻点作为当前点…

【数据结构】排序3——交换排序(冒泡排序、快速排序)

文章目录交换排序冒泡排序冒泡排序算法算法分析快速排序改进后的快速排序算法算法分析交换排序 【基本思想】 两两比较,如果发生逆序则交换,直到所有记录都排好序为止。 常见的交换排序方法: 冒泡排序T(n)O(n2) 快速排序T(n)O( nlog2n) 冒…

SpringSecurity Oauth2实战 - 06 获取用户登录信息并存储到本地线程

文章目录1. 获取用户登录信息1. 用户信息共享的ThreadLocal类 UserInfoShareHolder2. 写一个拦截器 UserInfoInterceptor3. 配置拦截器 CommonWebMvcAutoConfiguration2. 源码分析1. 认证用户通过access_token访问受限资源2. 进入过滤器 OAuth2AuthenticationProcessingFilter#…

源码分析:Transport 开发

有关 transport 相关队列的调用过程: 【T ransportService 】 TransportService.java 的所有接口由 DefaultTransportService.java 实现,里面包含四种接口: (1)发送到 ruleEngine 发送 TbProtoQueueMsg<ToRuleEngineMsg> 消息。 由 DefaultTbRuleEngineConsumerServic…

【攻破css系列——附加篇】vscode自动格式化

文章目录1. 快速格式化1.1 格式化的定义1.2 vscode的格式化组合键2. 自动格式化2.1 定义2.2 设置自动格式化的步骤1. 快速格式化 1.1 格式化的定义 格式化会让我们的代码正确缩进&#xff0c;同级标签的缩进空格一致&#xff0c;最后使我们代码更好看且易懂。 没有格式化我们…

Nginx学习

Nginx学习 nginx的基本概念 nginx是什么&#xff1f;做什么事情&#xff1f; Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;特点是占用内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力确实在同类型的网页服务器中表现较好。nginx专为…

gcc编程4步编译、调试c程序实操详解(Linux系统编程)

gcc编译可以执行程序4步骤:预处理、编译、汇编、链接 一、知识储备&#xff08;想看实战往下翻&#xff09; 在linux程序种&#xff0c;c程序需要用gcc进行编译&#xff0c;链接用ld程序&#xff0c;ggc编译完成后可自动调用ld程序完成链接。 调用gcc程序的语法格式&#xff…

Android Studio APP开发入门之对话框Dialog的讲解及使用(附源码 包括提醒对话框,日期对话框,时间对话框)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、提醒对话框 AlertDialog名为提醒对话框&#xff0c;它是Android中最常用的对话框&#xff0c;可以完成常见的交互操作&#xff0c;例如提示&#xff0c;确认&#xff0c;选择等功能&#xff0c;由于AlertDialog没有公开…

CLRNet: Cross Layer Refinement Network for Lane Detection——论文简述

一、简介 CLRNet充分利用了低层次特征和高层次特征&#xff0c;因为两者是互补的&#xff0c;先基于高层次特征侦测道路&#xff0c;再基于底层次特征进行调优&#xff1b;由于遮挡的存在&#xff0c;使用ROIGather进行全局信息的收集&#xff0c;在ROI道路特征和全局特征图之…

SaaS 架构基础理论(一)

SaaS架构基础理论1、背景2、SaaS商业模式2.1、什么是SaaS2.2、SaaS软件的优势&#xff1a;2.3、SaaS劣势&#xff1a;3.SaaS应用架构3.1、SaaS成熟度模型3.2、SaaS成熟模型分级3.2.1、Level1 定制开发3.2.2、Level2 可配置3.2.3、Level3 高性能的多租户架构3.2.4、Level4 可伸缩…

【Docker】Docker安装与入门

Docker入门与基础命令 Docker简介 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中&#xff0c;然后发布到任何流行的 Linux或Windows操作系统的机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xf…

Zookeeper几种应用

分布式锁 master-worker模式 涉及三种角色&#xff1a; 1. master&#xff0c;用于检测新的task、worker的添加&#xff0c;将新的task分配给worker处理 2. worker&#xff0c;将自己注册到系统&#xff0c;被master发现后&#xff0c;监控task 3. client&#xff0c;客户…

ARM pwn 入门 (3)

由于网上的ARM pwn题很少很难找&#xff0c;因此这里拿ROP Emporium的8道题做练习&#xff0c;这个网站有包含x86-64、x86-32、MIPS、ARM共4种架构的elf文件可以做。 1. ret2win 注意&#xff1a;在执行需要动态链接库加载的ARM elf文件时&#xff0c;如果直接使用qemu-arm x…

(免费分享)基于javaweb,ssm旅游景点预定系统

源码获取&#xff1a;关注文末gongzhonghao&#xff0c;输入003领取下载链接 IDEA开发工具,数据库&#xff1a;mysql&#xff0c;Tomcat8 采用&#xff1a;springmvcspringmybatis框架 &#xff08;1&#xff09;用户信息管理模块 用户信息管理模块分为后台管理员信息的维护…

zlMediaKit 3 socket模块--怎么封装socket,怎么connect listen/bind write read

socket.cpp socket.h socket SockInfo类&#xff0c;有四个获取四元组信息的虚函数一个获取自身标识符的虚函数 shared_from_this 原理关于boost中enable_shared_from_this类的原理分析 - 阿玛尼迪迪 - 博客园 (cnblogs.com) shared_ptr<Tp> shared_from_this() { re…

RabbitMQ学习(一)

目录&#xff1a; &#xff08;1&#xff09;什么是消息队列 &#xff08;2&#xff09;为什么要使用消息队列 &#xff08;3&#xff09;RabbitMQ特点 &#xff08;4&#xff09;RabbitMQ的安装 &#xff08;5&#xff09;RabbitMQ常用命令 &#xff08;6&#xff09;Ra…

【HTML】标签简单融合运用

&#x1f60a;博主页面&#xff1a;鱿年年 &#x1f449;博主推荐专栏&#xff1a;《WEB前端》&#x1f448; ​&#x1f493;博主格言&#xff1a;追风赶月莫停留&#xff0c;平芜尽处是春山❤️ 一、目录文件夹 1.在vscode建立一个新的目录文件夹如15-综合案例 2.将imag…

图的存储结构

图的存储结构 1.邻接矩阵表示法 设图G (V, E)是具有n个顶点的图&#xff0c;顶点顺序依次为{v1,v2,v3.......} 设a[N][N]为 n 阶方阵 G 的邻接矩阵具有此种性质&#xff1a; 若a[i][j]1&#xff0c;则存在边(vi, vj)或者弧<vi, vj> (即两点之间存在边或弧)若a[i][j]0…

day01 计算机基础和环境搭建

day01 计算机基础和环境搭建 课程目标&#xff1a;让大家了解计算机基础知识并完成python的环境搭建 课程概要&#xff1a; 计算机基础 编程的本质 python的介绍 python环境的搭建 1.计算机基础 1.1 基本概念 计算机的组成 计算机的组计算机是由多个硬件组合而成&#…