uni-app 提供开箱即用的 SSR 支持
uni-app 团队近期在完成 Vue 3.0 的全平台升级后,基于 Vue 3.0 + uniCloud,发布了开箱即用的 SSR 支持,官方称其为 uniCloud 版的 SSR。
据介绍,SSR(服务端渲染)可以给 SPA 站点带来两大核心优势:
-
更好的 SEO
-
更快的首屏渲染
下面是一个 uniCloud 版的 SSR 示例:news.dcloud.io 是基于 uni-app & uniCloud 开发的新闻系统。通过审查元素会发现,新闻列表数据包含在服务端下发的源码中,而不是客户端 Ajax 请求所得。
uniCloud 版的 SSR 实现的较为简单,且和 HBuilderX 做了深度集成,可以按照如下步骤快速上手:
步骤一:调整代码适配服务端运行环境
-
生命周期:uni-app的生命周期钩子函数中,页面onLoad、组件beforeCreate 和 created 会在服务器端渲染 (SSR) 过程中被调用,你需要检查原项目代码中获取数据的时机;
-
特定平台API:若直接使用了如 window 或 document,这类仅浏览器支持的全局变量,则会在云端 Node.js 中执行时抛出错误;
-
数据预取:<uniCloud-db>组件天然支持SSR,无需调整代码,推荐使用<uniCloud-db>查询数据库。如果你未使用<uniCloud-db>组件,则可使用serverPrefetch来实现服务器端数据获取,使用@dcloudio/uni-app提供的ssrRef或Vue.js官方的Vuex来实现状态同步;
更多详细信息及示例代码,参考:https://uniapp.dcloud.net.cn/collocation/ssr
步骤二:编译发行
通过HBuilderX的发行菜单->网站 PC-Web或手机H5、勾选ssr、勾选将编译后的资源部署在uniCloud前端网页托管
这个过程,对开发者来说很简单,只需要点击按钮即可,实际上HBuilderX
在背后做了大量工作,包括:
-
编译uni-app项目,分别生成Server Bundle和Client Bundle
-
将Client Bundle上传到uniCloud前端网页托管中
-
将Server Bundle作为uni-ssr云函数资源,编译并上传到uniCloud服务空间
步骤三:配置 uni-ssr 云函数的 URL 化路径
给uni-ssr云函数绑定自定义域名,然后在浏览器中访问该域名,就可以获得服务端渲染的页面了。
至此,uniCloud版SSR开发部署工作结束。
最后看看传统 SSR 与 uniCloud 版 SSR 的优缺点对比:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Bcachefs 将支持快照功能
邮件列表显示,Kent Overstreet 为 Bcachefs 合并了支持快照功能的补丁。 Bcachefs 是用于基于 Linux 的操作系统的写时复制 (COW) 文件系统。它由主要开发人员 Kent Overstreet 于 2015 年首次发布,并且正在努力将其合并到 Linux 内核主线中。此次补丁是一个类似于Btrfs 风格快照功能的支持,已经开发了 9 个月,大约有 3000 行代码。 根据邮件描述, Bcachefs 快照支持提供了 Btrfs 风格的子卷和快照,并且是可写的,同时快照数量仅受磁盘空间限制,而且没有内部碎片问题,具有高度可扩展性和空间效率。目前的代码已经支持正常的创建和删除快照,fsck 工作也已完成。此外,补丁还列出了当前存在的问题: 仍然需要为不同子卷中的文件输出不同的 st_dev 在快照中需要隐藏指向快照的节点 对于页面缓存来说,快照的创建不是原子性的,sync_fs() 不阻止缓冲写入 需要在快照创建时走动页面缓存并标记不再保留的块 不再有配额支持,因为老式的配额与快照的交互性很差 需要每个子卷的磁盘空间核算。 如欲了解更多详细内容,可以查...
- 下一篇
动图图解GC算法 - 让垃圾回收动起来!
原创:码农参上(微信公众号ID:CODER_SANJYOU),欢迎分享,转载请保留出处。 提到Java中的垃圾回收,我相信很多小伙伴和我一样,第一反应就是面试必问了,你要是没背过点GC算法、收集器什么的知识,出门都不敢说自己背过八股文。说起来还真是有点尴尬,工作中实际用到这方面知识的场景真是不多,并且这东西学起来也很枯燥,但是奈何面试官就是爱问,我们能有什么办法呢? 既然已经卷成了这样,不学也没有办法,Hydra牺牲了周末时间,给大家画了几张动图,希望通过这几张图,能够帮助大家对垃圾收集算法有个更好的理解。废话不多说,首先还是从基础问题开始,看看怎么判断一个对象是否应该被回收。 判断对象存活 垃圾回收的根本目的是利用一些算法进行内存的管理,从而有效的利用内存空间,在进行垃圾回收前,需要判断对象的存活情况,在jvm中有两种判断对象的存活算法,下面分别进行介绍。 1、引用计数算法 在对象中添加一个引用计数器,每当有一个地方引用它时计数器就加 1,当引用失效时计数器减 1。当计数器为0的时候,表示当前对象可以被回收。 这种方法的原理很简单,判断起来也很高效,但是存在两个问题: 堆中对象每一次...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库