uniapp浅识
- 什么是uniapp
- 跨端开发
- unicloud(云开发平台)
- serverLess架构
- 1.uniapp:
- 2.跨端开发
- 3. unicloud:是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。
- - 服务空间:项目绑定服务空间,然后才能上传云函数、操作服务空间下的数据库、存储等资源。
- - 云数据库(类似于MongDB数据库(非关系型)JSON格式)![//imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw](https://i-blog.csdnimg.cn/blog_migrate/67fce1e9bc68e72a2a7d2058261d5ec4.png)
- - 云函数(cloudFunction):云函数是运行在云端的 JavaScript 代码,和普通的Node.js开发一样,熟悉Node.js的开发者可以直接上手。
- - 云存储
- -前端网页托管:为开发者的html网页提供更快速、更安全、更省心、更便宜的网站发布
- 4.serverLess架构:就是云服务
什么是uniapp
跨端开发
unicloud(云开发平台)
serverLess架构
1.uniapp:
- 跨端开发
- 运行体验更好
- 通用技术栈,开发成本低
- 开放生态,组件更丰富
2.跨端开发
- 开发uniapp推荐使用HBuilderX编辑器(内置node.js环境),开箱即用
- 开发h5页面较为简便;开发各大小程序平台需要先配置各个小程序开发者工具的路径,要发布到各大平台需要获取小程序的id
- 开发APP推荐使用vue+nvue混开:nvue页面的渲染引擎是基于weex改进的,可以提供原生渲染能力,但是nvue的很多写法与前端大不相同,如果不开发APP不要使用nvue页面
- uniapp基于vue2.0开发,所以vue3.0的语法现在还不兼容
- 跨端开发的时候需要适应各个平台的规则限制,因为每个端都有每个端的管理规则,uniapp在技术层面无法抹平
- 比如H5端的浏览器有跨域限制;
- 比如微信小程序会强制要求https链接,并且所有要联网的服务器域名都要配到微信的白名单中;
- 比如App端,iOS对隐私控制和虚拟支付控制非常严格;
- 比如App端,Android、国产rom各种兼容性差异,尤其是因为谷歌服务被墙,导致的push、定位等开发混乱的坑;
- 如果你的App要使用三方sdk,比如定位、地图、支付、推送…还要遵循他们的规则和限制;
3. unicloud:是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。
一个uniCloud服务空间,有且只有一个数据库。一个数据库支持多个集合(表)。一个集合可以有多个记录。每个记录可以有多个字段。
- 优点:前端使用熟悉的js语法,轻松搞定前后台整体业务
- 如果不发布h5版,就不需要购买备案域名,小程序和App可以免域名使用服务器 - 包含IaaS层(由阿里云和腾讯云提供硬件和网络)和PaaS层(由DCloud提供开发环境)
- 开发时虽使用DCloud的工具,但应用上线时,手机端是直连阿里云或腾讯云的serverless,不经由DCloud的服务器。
- serverless的云,真正的把计算、存储的能力进行了云化,开发者只需要按量租用这些计算和存储能力,再也不用关心扩容和攻击。当用户量激增时,开发者什么都不用做,系统自动承载更高并发。开发者只需要按照对资源的消耗付费即可。同理,如果没有用户使用,即没有资源消耗,则根本无需为云资源付费。
- unicloud可以跨云开发
- uniCloud目录是存放服务端文件的目录,他和前端代码在同一个项目下这里只是方便管理。在发行前端部分,比如打包app、小程序、h5的代码包里并不会包含uniCloud目录。
- 服务空间:项目绑定服务空间,然后才能上传云函数、操作服务空间下的数据库、存储等资源。
创建一个服务空间:上传云函数、操作服务空间下的数据库、存储等资源。uniCloud基本抹平了不同云厂商的差异
- 阿里云:数据库是mongDB4.0
- 腾讯云:自研的文档型数据库(兼容mongDB4.0版本)
- 云数据库(类似于MongDB数据库(非关系型)JSON格式)
- 获取数据库对象的方式:const db=uniClound.database();
- 创建集合/数据表方式:
- 操作数据库:https://uniapp.dcloud.io/uniCloud/cf-database
- 性能优化:https://uniapp.dcloud.io/uniCloud/db-performance
- 云函数(cloudFunction):云函数是运行在云端的 JavaScript 代码,和普通的Node.js开发一样,熟悉Node.js的开发者可以直接上手。
可以本地使用,只有上传云端后才能在云端使用
特点:开发者无需购买、搭建服务器,只需编写函数代码并部署到云端即可在客户端(App/H5/小程序等)调用,同时云函数之间也可互相调用
- 开发云函数:https://uniapp.dcloud.io/uniCloud/cf-functions
- 定时触发器:已配置定时触发器的云函数,会在相应时间点被自动触发。
- 云函数url化:特指pc端想要连接uniCloud,读取数据,可以通过 HTTP URL 方式访问到云函数。
需要注意的是云函数默认是只有自己的app在前端通过uniCloud.callFunction来调用的,不会暴露到外网。一旦URL化后,开发者需要关注业务和资源安全。
- 云存储
- 开发者使用uniCloud的云存储,无需再像传统模式那样单独去购买存储空间、CDN映射、流量采购等;并且uniCloud的阿里云云存储和cdn,免费提供给开发者使用
- unicloud使用前需要开通
-前端网页托管:为开发者的html网页提供更快速、更安全、更省心、更便宜的网站发布
- 更快速:不经过web server,页面和资源直接上cdn,就近访问,速度更快。 更安全:不存在传统服务器各种操作系统、web
- server的漏洞,不用天天想着打补丁。不怕DDoS攻击,永远打不垮的服务。
- 更省心:无需再购买虚拟机、安装操作系统、配置web服务器、处理负载均衡、处理大并发、处理DDoS攻击…您什么都不用管,只需上传您写的页面文件
- 更便宜:uniCloud由DCloud联合阿里云和腾讯云推出,其中阿里云版本完全免费
基础配置:https://uniapp.dcloud.io/uniCloud/hosting?id=base-config
4.serverLess架构:就是云服务
- 什么是serveLess:
- Serverless = FaaS(函数即服务) + BaaS(后端即服务)。其中 Serverless 计算一般指 FaaS,即云函数。阿里云Serverless 是一个更大的范畴,Serverless 不只计算,也包括存储、数据库、中间件等各种服务。
- serverLess优点:物理机-云主机-serverLess架构;去服务器化
- 当前的 Serverless 计算服务还有很多限制,而阿里云函数计算2.0解决了这些痛点,目标是提供在可靠性、成本、性能、工程效率上最具竞争力的计算服务
- uniapp中的serveLess指的是云函数unicloud