faq.md 5.9 KB
Newer Older
W
wanganxp 已提交
1
### uniCloud和微信小程序云开发、支付宝小程序云开发有何区别?
雪洛's avatar
雪洛 已提交
2

W
wanganxp 已提交
3
微信、支付宝、百度的小程序,均提供了云开发。但它们都仅支持自家小程序,无法跨端。
雪洛's avatar
雪洛 已提交
4 5 6

`uniCloud`和微信小程序云开发、支付宝小程序云开发使用相同的基础建设平台,微信小程序云开发背后是腾讯云的TCB团队,支付宝小程序云开发背后是阿里小程序云团队。`uniCloud`是DCloud和阿里小程序云团队、腾讯云的TCB团队展开深层次合作,在他们底层资源的基础上进行二次封装,提供的跨端云开发方案。

雪洛's avatar
雪洛 已提交
7
简单来说,uniCloud和微信小程序云开发、支付宝小程序云开发一样稳定健壮,但可以跨更多平台。不管你在uniCloud里选择了阿里还是腾讯的serverless,均可以跨端使用。
雪洛's avatar
雪洛 已提交
8

W
wanganxp 已提交
9
### uniCloud稳定吗?DCloud服务器异常会影响我的线上业务吗?
雪洛's avatar
雪洛 已提交
10

W
wanganxp 已提交
11
`uniCloud`是 DCloud 和阿里云、腾讯云等成熟云厂商合作推出的云服务产品,阿里云、腾讯云等提供云端基础资源,DCloud提供API设计、前端框架、IDE工具支持、管理控制条、插件生态等服务,开发者的云函数直接托管在阿里云等服务商平台。用户终端App运行时,直连云服务商平台,不会经过DCloud服务器,开发者无需担心因DCloud服务器负载而影响自己业务的问题。
雪洛's avatar
雪洛 已提交
12

W
wanganxp 已提交
13
### 云函数 和 传统 Node.js 开发有何区别?
雪洛's avatar
雪洛 已提交
14

W
wanganxp 已提交
15
云函数相当于 Node.js + Serverless + DCloud改进。
雪洛's avatar
雪洛 已提交
16 17 18 19 20
- 传统Node.js开发需要购买服务器,安装Node.js环境,部署 pm2 等守护进程;云函数无需考虑服务器环境,只需专心实现业务代码,然后将云函数一键上传,云服务商负责云函数运行环境的准备。
- 传统Node.js开发模式,开发者需监控服务器参数,比如硬盘使用率,避免服务器负载过高导致业务中断;云函数模式下,开发者无需关心云函数运行的宿主环境,云厂商会实现服务调配及硬件监控。
- 用户量较大时,传统Node.js开发需考虑购买更多服务器并实现负载均衡;云函数模式下,云服务商自动弹性扩容,开发者无需担心服务器扛不住压力。
- 传统Node.js开发模式,需考虑安全防护,比如DDos攻击;云函数模式,云厂商的API网关会做拦截防护,开发者无需关心,并可节省高防IP等费用

W
wanganxp 已提交
21
总结一下,前端同学即便可熟练编写Node.js代码,但对于DB优化、弹性扩容、攻击防护、灾备处理等方面还是有经验欠缺的,但`uniCloud`将这些都封装好了,真正做到仅专注业务实现,其它都委托云厂商服务。
雪洛's avatar
雪洛 已提交
22

W
wanganxp 已提交
23 24
另外,在 Node.js 代码实现上,云函数每次执行的宿主环境(可简单理解为虚拟机或服务器硬件)可能相同,也可能不同,因此传统`Node.js`开发中将部分信息存储本地硬盘或内存的方案就不再适合,建议通过云数据库或云存储的方案替代。

W
wanganxp 已提交
25
### uniCloud只支持uni-app,怎么开发web界面?
W
wanganxp 已提交
26

W
wanganxp 已提交
27
uni-app本来也可以开发web界面,只是内置组件对宽屏没有自动适配。你可以:
W
wanganxp 已提交
28
1. 新建uni-app项目,但不使用内置组件,而是直接用三方ui库,比如elementUI。这些基于vue的、适合宽屏使用的ui库可以直接用。至于js api,仍然使用uni的,比如uni.setStorage等。有一个可参考插件[GraceAdmin](https://ext.dcloud.net.cn/plugin?id=1347),是基于uniCloud的pc端管理后台框架。
W
wanganxp 已提交
29 30
2. 继续使用内置组件,自己处理pc适配:
    - 如果要多端适配界面,使用css的媒体查询处理适配。
W
wanganxp 已提交
31
    - 2.6.3起,uni内置组件支持了pc鼠标的滚动和drag。老版可以使用三方库替换touch的拖动为pc上的drag,比如touch-emulator.js。
W
wanganxp 已提交
32
    - uni-app的内置组件和api仅适配了webkit内核浏览器,ie和firefox可能有兼容问题。如有问题需自己写额外css或js适配。
W
wanganxp 已提交
33

W
wanganxp 已提交
34 35
后续DCloud会进一步强化内置组件和uni-ui对PC浏览器的适配。

W
wanganxp 已提交
36
### 云函数是否有http url触发方式?
W
wanganxp 已提交
37

W
wanganxp 已提交
38
腾讯云、阿里云均已支持云函数URL化。[详见](https://uniapp.dcloud.io/uniCloud/http)
W
wanganxp 已提交
39

W
wanganxp 已提交
40
### 微信云开发支持客户端直接操作数据库,uniCloud不支持?
W
wanganxp 已提交
41
- 安全问题:客户端直接操作数据库,会有安全隐患。微信云开发利用了微信账户是强制登陆的特点,设计了一套基于微信账户的权限,可以让客户端直接操作数据库,但一旦离开微信环境这种方案就用不了。比如App和H5,大多是不需要登录账户也可以使用的。
W
wanganxp 已提交
42
- 性能问题:客户端直接操作数据库,会造成客户端的sdk体积变大、启动初始化变慢、整体联网消耗流量变大、数据获取权限控制复杂,并不好用。
W
wanganxp 已提交
43

W
wanganxp 已提交
44 45
综上,uni-app放弃了客户端直连数据库,所有数据库操作必须使用云函数。

W
wanganxp 已提交
46
### 云函数支持websocket和定时任务吗?
W
wanganxp 已提交
47

W
wanganxp 已提交
48 49 50
腾讯云已支持定时任务,很快阿里云也会补齐。

至于websocket,它的实时特性导致serverless化比较复杂。还需要继续寻找合适方案。如果使用三方sdk服务,比如推送、腾讯或声网等实时音视频方案,由于是连接三方服务器,不是连接uniCloud,这些方案仍然可以继续使用。
W
wanganxp 已提交
51

W
wanganxp 已提交
52
### 发布H5时还得自己找个服务器部署前端网页,可以不用自己再找服务器吗?
W
wanganxp 已提交
53 54 55

很快会支持。

W
wanganxp 已提交
56
### 腾讯、阿里的serverless有什么大案例?
W
wanganxp 已提交
57

雪洛's avatar
雪洛 已提交
58 59
- 微信小程序云开发,已经有50万开发者,包括腾讯自有的很多大日活应用都构建在腾讯云serverless上,如微信生活缴费、乘车码、微信读书、腾讯新闻、腾讯相册等。
- 2019年双11,阿里部分业务已经迁移在serverless上。支付宝小程序也提供了云开发功能。
W
wanganxp 已提交
60

W
wanganxp 已提交
61
### uniCloud费用贵不贵?
W
wanganxp 已提交
62 63

目前uniCloud处于公测期,是免费的。未来uniCloud的租用费用,也会低于租用传统云主机的费用。
W
wanganxp 已提交
64
另外公测结束也不会删除公测期的数据。