深度剖析 Vue.js 经典知识点之:SPA、SSR与MVVM

SPA

更多精彩内容,请微信搜索“前端爱好者戳我 查看 。‘

谈一谈你对 SPA 单⻚面的理解,它的优缺点分别是什么

SPA( single-page application )仅在 Web ⻚面初始化时加载相应的 HTML、JavaScript 和 CSS。

一旦⻚面加载完成,SPA 不会因为用户的操作而进行⻚面的重新加载或跳转;取而代之的是利用路由机制实现 HTML 内容的变换,UI 与用户的交互,避免⻚面的重新加载。

优点:

  • 用户体验好、快,内容的改变不需要重新加载整个⻚面,避免了不必要的跳转和重复渲染;
  • 基于上面一点,SPA 相对对服务器压力小;
  • 前后端职责分离,架构清晰,前端进行交互逻辑,后端负责数据处理;

缺点:

  • 首屏(初次)加载慢:为实现单⻚ Web 应用功能及显示效果,需要在加载⻚面的时候将JavaScript、CSS 统一加载,部分⻚面按需加载;
  • 不利于 SEO:由于所有的内容都在一个⻚面中动态替换显示,所以在 SEO 上其有着天然的弱势。

SPA 单⻚面应用的实现方式有哪些

前端路由的实现原理。
  • hash 模式
  • history 模式

hash 模式中,在 window 上监听 hashchange 事件(地址栏中hash变化触发)驱动界面变化;

history 模式中,在 window 上监听 popstate 事件(浏览器的前进或后退按钮的点击触发)驱动
界面变化,监听 a 链接点击事件用 history.pushState 、 history.replaceState 方法驱动界面变
化;直接在界面用显示隐藏事件驱动界面变化。

VUE

使用过 Vue SSR 吗?说说 SSR?

SSR – Server Side Renderer

Vue.js 是构建客户端应用程序的框架。默认情况下,可以在浏览器中输出 Vue 组件,进行生成DOM 和操作 DOM。

然而,也可以将同一个组件渲染为服务端的 HTML 字符串,将它们直接发送到浏览器,最后将这些静态标记"激活"为客户端上完全可交互的应用程序。

即:SSR大致的意思就是vue在客户端将标签渲染成的整个 html 片段的工作在服务端完成,服务端形成的html 片段直接返回给客户端这个过程就叫做服务端渲染。

服务端渲染 SSR 的优缺点

服务端渲染的优点:

  • 更好的 SEO: 因为 SPA ⻚面的内容是通过 Ajax 获取,而搜索引擎爬取工具并不会等待 Ajax 异步完成后再抓取⻚面内容,所以在 SPA 中是抓取不到⻚面通过 Ajax 获取到的内容;而 SSR 是直接由服务端返回已经渲染好的⻚面(数据已经包含在⻚面中),所以搜索引擎爬取工具可以抓取渲染好的⻚面;

  • 更快的内容到达时间(首屏加载更快): SPA 会等待所有 Vue 编译后的 js 文件都下载完成后,才开始进行⻚面的渲染,文件下载等需要一定的时间等,所以首屏渲染需要一定的时间;SSR 直接由服务端渲染好⻚面直接返回显示,无需等待下载 js 文件及再去渲染等,所以 SSR 有更快的内容到达时间;

服务端渲染的缺点:

  • 更多的开发条件限制: 例如服务端渲染只支持 beforCreate 和 created 两个钩子函数,这会导致一些外部扩展库需要特殊处理,才能在服务端渲染应用程序中运行;并且与可以部署在任何静态文件服务器上的完全静态单⻚面应用程序 SPA 不同,服务端渲染应用程序,需要处于 Node.js server运行环境;

  • 更多的服务器负载:在 Node.js 中渲染完整的应用程序,显然会比仅仅提供静态文件的 server 更加大量占用CPU 资源 (CPU-intensive - CPU 密集),因此如果你预料在高流量环境 ( high traffic ) 下使用,请准备相应的服务器负载,并明智地采用缓存策略。

如果没有 SSR 开发经验的同学,可以参考一篇 SSR 的实践文章《Vue SSR 踩坑之旅》,里面 SSR 项目搭建以及附有项目源码。

谈一谈你对 MVVM 的理解

传统的服务端 MVC 架构模型:View

  • models 数据模型,专⻔提供数据支持的
  • controllers 控制器模块,处理不同的⻚面请求的或者处理接口请求
  • views 视图文件

核心理念:单一职责,分工协作

优点:

  • 更好的开发效率
  • 更好的可维护性

MVVM 模式常⻅于用于构建用户界面的客户端应用。

MVVM 模型:

字面意义是这样的:

MVVM 是 Model-View-ViewModel 的缩写,MVVM 是一种设计思想。
  • Model 层代表数据模式,也可以在 Model 中定义数据修改和操作的业务逻辑
  • View 代表 UI 组件,它负责将数据模型转化为 UI 展现出来
  • ViewModel 是一个同步 View 和 Model 的对象。

简单理解

前端开发早期的时候都是操作 DOM

后来使用 jQuery 让我们提高了操作 DOM 的效率,但从开发⻆度还是在大量的手动操作 DOM

MVVM 模式让以往手动操作 DOM 的方式彻底解脱了,它不要用户自己操作 DOM,而是将普通数据绑定到 ViewModel 上,会自动将数据渲染到⻚面中,视图变化会通知 ViewModel 层更新数据,数据变化也会通过 ViewModel 层更新视图,因此 MVVM 中最重要的⻆色就是 ViewModel,真正意义上把视图和数据实现了解耦,提高了开发效率

MVVM 模式主要用于构建用户界面的前端应用

  • 微软的 WPF,构建客户端应用的
  • 手机应用,iOS APP、Android App
  • Web 应用

核心:

  • MVVM 模式让我们从繁琐的 DOM 操作中彻底解放了
  • MVVM 也叫数据驱动视图

Vue 中的 MVVM:

用 Vue 中组件代码来表示 MVVM 的话就是这样的:


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

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

相关文章

天敏G10数位板安装完PS无压感,观看此教程

1.拿到数位板,先把usb线路插入到电脑 ps.插入电脑usb,台式机请使用后置面板,这样供电稳定。 2.安装驱动 PS.驱动都是无盘驱动,驱动在我的电脑,一个移动盘符中,找到直接安装即可 3.安装完桌面会有一个图标&#xff…

ps打开笔压仍没有效果

打开钢笔压感但是ps依旧没有笔压 ①在此电脑搜索框中搜索: %appdata%\Adobe 然后打开Adobe Photoshop CC 2019 Settings ②创建文本 PSUserConfig 如下图所示: 这是PSUserConfig文本中的内容 # Use WinTabUseSystemStylus 0 ③然后再次打开ps尝试。 …

每天一个小技巧【5】·数位板笔刷压感设置

虽然是个程序员,但是感觉还是需要个数位板,比如可以做笔记、绘制光学路径、分析运动和受力过程、公式计算,或者放松时涂个鸦。(虽然感觉ipad苹果笔或许更合适) 我的数位板是有压感功能的,但想要在PS中让笔…

在web上实现压感

先放结论:结论是可以成功获得压感,可行。具体方案可以见文章末尾。 想着做一款带压感的在线绘图工具。首当其冲的问题就是web无法获取到数位板的压感数值。 查询了知乎、百度、google,得到了一下集中方案: 1. pressurejs.com 这…

ps cutterman点击没有反应

ps cutterman点击没有反应,解决办法:http://www.cutterman.cn/zh/faq PS:如果不行,把上面打开的文件夹全部的cutterman删除,重新安装

WIN10系统下PS软件卡顿问题的解决方法

WIN10系统下PS软件手绘板卡顿问题的解决方法 问题的状况问题来源解决方法备注 问题的状况 在win10系统下: 1. 使用手绘板在PS中画画时会弹出Win Ink的小键盘或者其他 2. 不定时卡顿 3. 丢失指针,取消选中图层 4. 滑动过程中中断,在图上留下…

Redis高级篇 - 多级缓存

多级缓存 1.什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图: 存在下面的问题: 请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈 Redis缓存失效时…

如何在线剪辑视频?手机视频怎样剪辑?

在这个短视频当道的时代,大家都开始随手录制视频记录生活,一个视频从录制到发布,中间不可缺少的环节就是对视频的剪辑,想要做出高质量的视频,就少不了要在视频剪辑这一方面下功夫。 有视频剪辑经验的小伙伴自然会选择使…

视频快速剪辑分享

优酷视频格式转码比较慢,剪辑视频时长比较大时 可以采取一种比较懒的方式对视频进行快速剪辑 1.下载 EV录屏,并进行设置 2.进入设置,修改录制倒计时时间,并记住快捷键,默认快捷键为Ctrl F1 3.将待剪辑视频放置在录制…

屏幕录制和视频剪辑Filmage Screen

Filmage Screen是Mac上的一款比较专业的录屏软件,可以一键录制高清的视频,可以选择全屏录制,也可以选择自定义屏幕,Filmage Screen拥有内置的相机,可以创建清晰的影片,Filmage Screen具有视频编辑功能&…

极简视频录制/剪辑工具-Camtasia Studio9

由于疫情影响,许多会议、课程、毕业答辩等工作均设为线上,有时课程可能没有回放,或是会议领导的总结发言等可能需要反复观看,又或是毕业季的网上答辩,学生生涯中一次美好的回忆,将其记录下来日后观看&#…

电脑录屏怎么录?3个方法,教你如何录制视频

电脑录屏是可以通过录制视频的方式进行记录下我们的操作过程,并且可以随时保存下来方便以后查阅使用。大家都知道,电脑录屏是非常实用的,能够帮助我们记录屏幕上的内容,而且还能保存下来,以便我们以后的电脑学习使用。…

android系统视频剪辑app推荐,知乎10w人收藏:玩短视频必装的9款剪辑App(最全)...

声明:本文来自于微信公众号 微果酱(ID:wjam123456),作者: 橙子,授权站长之家转载发布。 做运营的 每天都要面临一些新难题 比如老板想追潮流做短视频 吐血写脚本、拍完视频 磨刀霍霍向猪羊准备剪视频 打开电脑剪辑软件发现,为何如此复杂 滤镜怎么加?调色怎么办?特效怎…

Camtasia视频剪辑功能详解

Camtasia是一款备受好评的屏幕录制软件,其中一个非常好用的功能就是视频剪辑,其视频剪辑功能的初衷是为了方便用户在录制视频后直接对视频文件进行编辑,而后也可以将其他视频导入Camtasia进行编辑,正因如此,Camtasia令…

录制和剪辑视频,如何解决占用空间过大的问题?

题图:用 OpenAI DALLE 绘制。prompts: a big movie tape in the crowded lighting room 问题 最近做视频比较多。我一般采用手机录制,然后加上 B-roll 素材进行剪辑。录制 8-10 分钟的视频,大概能有 1GB 左右的体积,输出后的视频也…

学术会议演讲视频录制全方位指南

1. 引言 随着进入后疫情时代,在线学术会议愈发频繁。从CCF-A类会议到C类会议,基本上都需要做线上的Oral。 一般的要求就是录制一个15分钟左右的Presentation,然后上传至网站即可。有些会议还贴心的准备了加载字幕的功能,我们的英…

3-网络初识——协议

目录 1.概念 ①语法:即数据与控制信息的结构或格式。 ②语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。 ③时序:即事件实现顺序的详细说明。 2.作用 3.知名协议的默认端口 4.协议分层 4.1.什么是协议分层 …

我是如何录制技术视频教程的?

今天这篇文章为大家分享一下本人录制技术教学视频的一些经验。这样的经验可能很难在网上找到这么全的。 如果你正在录制视频教程,希望能对你有新的启发;如果你还未录制过视频教程,看完之后要么获取经验,要么考虑是否入行。如果你…

计算机录制视频的方法,怎么录制电脑屏幕视频步骤(电脑录屏的方法有4种)...

电脑录屏的方法有4种,一键开启很简单,大家都来学一学 如果你想要和我一样,想要进行一些电脑屏幕步骤的操作,想要把屏幕录制下来,这时候很多人就会选择使用QQ自带的录屏功能,其实除了QQ录屏,电脑…

卢松松:口播类视频快速剪辑初级教程!

卢松松编著 对新手来说,口播类视频核心理念就是:大力出奇迹。 口播类视频是短视频领域最简单、最初级的一种视频模式。只要你人站在哪里说话就可以了,门槛非常低。因为口播类视频,在同一时期可产生几个、甚至几十个视频。所以“…