分享好友 最新动态首页 最新动态分类 切换频道
nuxt服务端渲染技术
2024-12-26 07:19

学习目标

  • 掌握NUXT框架的基本使用方法
  • 完成十次方网站前台的搭建
  • 完成十次方网站前台活动模块的功能
  • 完成十次方网站前台招聘模块的功能

​ 服务端渲染又称SSR (Server Side Render)是在服务端完成页面的内容,而不是在客户端通过AJAX获取数据。

​ 与传统 SPA(Single-Page Application - 单页应用程序)相比,服务器端渲染(SSR)的优势主要在于更好的 SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面。

​ 请注意,截至目前,Google 和 Bing 可以很好对同步 JavaScript 应用程序进行索引。在这里,同步是关键。如果你的应用程序初始展示 loading 菊花图,然后通过 Ajax 获取内容,抓取工具并不会等待异步完成后再行抓取页面内容。也就是说,如果 SEO 对你的站点至关重要,而你的页面又是异步获取内容,则你可能需要服务器端渲染(SSR)解决此问题。

​ 更快的内容到达时间(time-to-content),特别是对于缓慢的网络情况或运行缓慢的设备。无需等待所有的 JavaScript 都完成下载并执行,才显示服务器渲染的标记,所以你的用户将会更快速地看到完整渲染的页面。通常可以产生更好的用户体验,并且对于那些「内容到达时间(time-to-content)与转化率直接相关」的应用程序而言,服务器端渲染(SSR)至关重要。

Nuxt.js 是一个基于 Vue.js 的轻量级应用框架,可用来创建服务端渲染 (SSR) 应用,也可充当静态站点引擎生成静态站点应用,具有优雅的代码结构分层和热加载等特性。

官网网站

https://zh.nuxtjs.org/

(1)我们从网站上下载模板的压缩包 starter-template-master.zip 解压,修改template目录目录的package.json中的名称

(2)在命令提示符下进入该目录下的template目录

(3)安装依赖

 

(4)修改package.json

 

(5)修改nuxt.config.js

 

(6)测试运行

 
 

(1)资源目录 assets

用于组织未编译的静态资源如 LESS、SASS 或 JavaScript。

(2)组件目录 components

用于组织应用的 Vue.js 组件。Nuxt.js 不会扩展增强该目录下 Vue.js 组件,即这些组件不会像页面组件那样有 asyncData 方法的特性。

(3)布局目录 layouts

用于组织应用的布局组件。

(4)页面目录 pages

用于组织应用的路由及视图。Nuxt.js 框架读取该目录下所有的 .vue 文件并自动生成对应的路由配置。

(5)插件目录 plugins

用于组织那些需要在 根vue.js应用 实例化之前需要运行的 Javascript 插件。

(6)nuxt.config.js 文件

nuxt.config.js 文件用于组织Nuxt.js 应用的个性化配置,以便覆盖默认配置。

1.5.1 定义布局

我们通常的网站头部和尾部都是相同的,我们可以把头部为尾部提取出来,形成布局页

修改layouts目录下default.vue

 

<nuxt/>为内容的区域

1.5.2 页面路由

在page目录创建文件夹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y8r2LAQ8-1583990044377)(image/5-1.jpg)]

recruit目录创建index.vue

 

gathering目录创建index.vue

 

NUXT的路由是根据目录自动生成的,无需手写。

修改default.vue,header中添加导航链接

 

点击导航链接,测试路由效果

1.5.3 数据渲染

(1)安装axios,用于异步获取数据

 

(2)修改gathering目录的index.vue

 

asyncData是用于异步加载数据的方法

1.5.4 动态路由

如果我们需要根据ID查询活动详情,就需要使用动态路由。NUXT的动态路由是以下划线开头的vue文件,参数名为下划线后边的文件名

创建pages/gathering/item/_id.vue

 

我们在地址栏输入 http://localhost:3000/gathering/item/1 即可看到运行结果

在活动列表页点击链接进入详情页

 

使用v-for’更新已渲染’的元素列表时,默认用就地复用策略;列表数据修改的时候,他会根据key值去判断某个值是否修改,如果修改,则重新渲染这一项,否则复用之前的元素;
目前 的作用和 一致 ,都是进行路由的跳转。

(1)拷贝静态资源:将静态原型中的css、img、plugins目录拷贝至assets目录下 。

(2)我们参照静态原型中的activiti-index.html页面来编写网站的通用布局,即网站的头部和尾部

修改layouts下的default.vue,内容如下

 
 

修改pages/index.vue ,内容如下

 

参考headline-login.html页面构建,拷贝代码后将https://blog.csdn.net/douxubao/article/details/104817055/批量替换为~/assets/

按照上述方法构建以下页面

(1)建立pages/qa/index.vue (问答首页

(2)建立pages/gathering/index.vue(活动首页

(3)建立pages/friends/index.vue(交友首页

(4)建立pages/spit/index.vue (吐槽首页

(5)建立pages/recruit/index.vue (招聘首页

修改layouts/default.vue

 

详见官方文档

https://router.vuejs.org/zh-cn/api/router-link.html

3.1.1 数据渲染

我们这一步将读取模拟的动态数据来完成服务端数据渲染部分

(1)创建utils文件夹,utils下创建request.js ,用于封装axios

 

(2)创建api文件夹,将管理后台工程的api/gathering.js 拷贝到api文件夹

(3)修改pages/gathering/index.vue

 

(4)为了实现完美的测试效果,我们修改easyMock接口

URL:/gathering/gathering/search/{page}/{size} (post)

 

3.1.2 瀑布流组件

我们这里使用的瀑布流组件vue-infinite-scroll,安装

 

代码实现

(1)plugins下创建vue-infinite-scroll.js

 

(2)修改nuxt.config.js

 

(3)修改页面pages/gathering/index.vue

 

添加pageNo用于记录页码

 

编写方法loadMore

 
 

3.2.1 活动详情页构建

修改pages/gathering/item/_id.vue 内容根据静态原型页面activity-detail.html构建 ,代码略

3.2.2 数据渲染

修改pages/gathering/item/_id.vue

 

3.2.3 分享组件

Share.js是一款一键转发工具,它可以一键分享到新浪微博、微信、QQ空间、QQ好友、腾讯微博、豆瓣、Facebook组件、Twitter、Linkedin、Google+、点点等社交网站,使用字体图标。

以下步骤可以实现微博和微信分享

(1)修改pages/gathering/item/_id.vue的脚本部分。以下代码用于引入外部的js .我们这里的js采用cdn方式引入 地址为

https://cdn.bootcss.com/social-share.js/1.0.16/js/social-share.min.js

所需要的样式: https://cdn.bootcss.com/social-share.js/1.0.16/css/share.min.css

 

(2)修改pages/gathering/_id.vue的页面部分,在合适的位置添加分享按钮

 

选项

 

以上选项均可通过标签 来设置

4.1.1 编写API方法

(1)将管理后台的api/recruit.js和api/enterprise.js 拷贝到当前工程的api文件夹下

(2)修改api/recruit.js,增加方法

 

(3)修改api/enterprise.js,增加方法

 

4.1.2 招聘列表页数据渲染

修改pages/recruit/index.vue axios.all可以并发多个异步请求,axios.spread负责获取多个异步请求的返回结果。

 

模板部分代码

 
 

4.2.1 构建招聘详情页

(1)构建招聘详细页 pages/recruit/item/_id.vue

 

(2)修改pages/recruit/index.vue 链接

 

4.2.2 招聘详情页-渲染招聘信息

修改 pages/recruit/item/_id.vue

 

4.2.3 招聘详情页-渲染企业信息

修改 pages/recruit/item/_id.vue,以嵌套方式加载企业信息

 

修改 pages/recruit/item/_id.vue页面模板部分

LOGO

 

企业名称

 

企业简介

 

企业标签

 

企业主页和企业职位数:

 

为了达到良好的测试效果,建议修改以下easyMock的数据

/recruit/enterprise/{enterpriseId} (GET)

最新文章
高、低两端细分市场增长迅速,市场期待“以旧换新”政策持续
来源:@华夏时报微博随着2024年步入尾声,中国汽车市场依然保持着强劲的增长态势。据商务部最新数据显示,截至11月18日,全国汽车以旧换新补贴申请总量突破400万份,其中报废更新和置换更新补贴申请各突破200万份。得益于政府推出的汽车以
打造热门全攻略,搭建与推广实战指南
本攻略全面解析搭建与推广策略,涵盖、设计、SEO优化、内容营销等多方面技巧,助你轻松打造热门,提升影响力。搭建推广在化浪潮席卷全球的今天,构建一个优秀的已成为企业及个人展示自我、拓展业务的关键,搭建完成后,如何有效地推广,使
维吉尼亚密码加密/解密在线工具
维吉尼亚密码加密/解密在线工具,工具链接:http://www.atoolbox.net/Tool.php?Id=856 维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26
高清美女写真生成法:用AI轻松打造虚拟女友!
Deep Dream Generator:这一工具基于谷歌的Deep Dream算法,虽不是专为写真设计,但能根据用户的照片生成颇具梦幻效果的画像。用户可以上传自己的照片,然后通过多种风格进行转换,虽然应用场景多样,但效果有时难以把握,需用户多加尝试。
逾期还款困难证明办理全攻略:信用卡、贫困、还款、如何一次搞定
逾期情况说明是指在个人、信用卡或其他金融产品出现逾期还款时需要向相关金融机构提交的一份书面说明。在这份说明中需要详细说明逾期的起因、逾期的金额、逾期的时间以及未来的还款计划等内容。这样金融机构可更好地理解借款人的实际情况从
贵阳爱采购标题撰写
解答:百度爱采购的优点有哪些?对中小企推广有什么优势?百度爱采购是百度集团旗下的 B2B 竖直搜索模块,致力于协助客户更切实解决企业发展趋势难点。服务平台靠着百度强劲的搜索技术性,服务项目大量客户,并运用AI技术性,结合要求案件
苹果可以长期充电使用吗 苹果手机可以一直充电吗
苹果手机一直以来都备受关注,其中电池续航一直是用户关注的焦点之一,而且苹果手机的电池技术一直处于行业领先地位,但对于长期充电使用,我们需要了解其中的原理和影响因素,在日常使用中,很多人习惯将手机整夜充电,但这样的做法是否会
魔乐+SwanLab: 快速可视化跟踪模型微调
SwanLab是一款开源、轻量级的AI实验跟踪工具,提供了一个跟踪、比较、和协作实验的平台,旨在加速AI研发团队100倍的研发效率。其提供了友好的API和漂亮的界面,结合了超参数跟踪、指标记录、在线协作、实验链接分享、实时消息通知等功能,
网站seo,优化-seo网站优化详解
百度网站SEO优化的方法主要包括以下几个方面:内容优化:提供高质量、原创且相关的内容,确保内容满足用户搜索意图,并优化标题、描述和元标签,增加关键词密度但不过度堆砌,同时利用图像、视频等可视化内容增强吸引力。网站结构优化:调
简明:为什么 WhatsApp 不支持中国手机号注册?2024年问题与解决-FB好用账号购买网-站长工具
前言:简明:为什么WhatsApp不支持中国手机号注册?FB好用账号购买网助你解决,来自汕尾市山柳絮钟表店的专业指导====================简明:为什么 WhatsApp 不支持中国手机号注册?2024年问题与解决-FB好用账号购买网-站长工具-宣传视频
相关文章
推荐文章
发表评论
0评