对Vue的理解

vue, 是一个JavaScript的框架,主要用于开发单页面应用,它的官网上给他的的定义是渐进式框架,在前端这个行业受许多人喜欢。

vue具有自己的数据驱动 , (MVVM)模型 和 它的组件化编程, 内部优秀的指令系统。

与其他框架相比vue比较简单, 上手快。

vue的MVVM模型

vue的数据驱动 MVVM。
M - > Model 模型层 负责处理逻辑业务和服务端的交互

V - > View 视图层 负责将数据模型,转为UI展示出来,可以理解为HTML

VM -> View Model 视图模型层, 用来连接 Model 和 View 层的,实现模型层和视图层的通信, 是它们两个之间的通信的桥梁

vue组件化的好处

组件化, 就是将开发的代码中的某一个模块,进行封装为一个组件,需要时候随时可以使用

在vue中组件化的好处

  • 降低整个体系的耦合度、在保持接口不变的情况下, 可以替换不同的组件完成需求
  • 调试方便,某一个组件出现问题, 可以放快速找到该组件 进行修复或移除
  • 提高可维护性,由于每个组件的职责单一,并且组件在系统中是被复用的,所以对代码进行优化可获得系统的整体升级

vue的指令系统

  • v-if
  • v-for
  • v-html
  • v-show
  • v-on
  • v-bind
  • v-model

讲对SPA单页面的理解

SPA全称: Single Page Application, 即单页面应用。

SPA 页面是 它所需要的资源, 如HTML\CSS\JS 等,在一次请求中加就加载完成,也就是不刷新的动态加载。而对于普通的页面来说,所有的页面渲染、逻辑处理、页面路由、接口请求、都是在浏览器中发生。 对SPA页面来说, 页面的切换就是组件或是视图的切换

SPA页面只有一个HTML页面,在vue中通过vue-router 来对局部切换组件,而非刷新整个页面,来实现无刷新切换页面的技术

单页面应用的优缺点

优点:

  • 具有桌面应用的即时性、网站的可移植性和可访问性
  • 用户体验好、快,内容的改变不需要重新加载整个页面
  • 良好的前后端分离,分工更明确

缺点:

  • 不利于搜索引擎的抓取
  • 首次渲染速度相对较慢

SPA和MAP的区别

单页面应用和多页面应用的区别

MPA -> MultiPage-page Application 多页面应用
MPA 中的每一个页面都是一个主页,在访问另一个页面时候都需要重新加载 html、css、js 等文件

单页面应用和多页面应用的区别

单页面应用(SPA) 多页面应用(MPA)
组成 一个主页面和多个页面片段 多个主页面
刷新方式 局部刷新 整页刷新
url模式 哈希模式 历史模式
SEO搜索引擎优化 难实现,可使用SSR方式改善 容易实现
数据传递 容易 通过url、cookie、localStorage等传递
页面切换 速度快,用户体验良好 切换加载资源,速度慢,用户体验差
维护成本 相对容易 相对复杂

v-show 和 v-if 的区别和使用场景

v-if 和 v-show 的共同点

v-if 和 v-show 都能控制元素在页面是否展示。

  • 当表达是为 true 时, 都会占据页面的位置
  • 当表达式为 false 时, 都不会占据页面

v-if 和 v-show 的区别

  • v-show 是给元素加上 css--display: none , dom 元素依旧存在, v-if 显示和隐藏则是将 dom 元素整个添加或删除
  • v-if 消耗性能较高、 v-show 在初始渲染时消耗较高
  • v-if 绑定的表达式由 true -> false 时, 会触发vue的声明周期钩子 , 比如 mountde beforeCreated beforeDestory , 而 v-show 并不会触发声明组件的生命周期

v-if 和 v-show 的使用场景

v-if 与 v-show 都能控制 dom 元素页面显示

v-if 于 v-show 相比开销更大 (直接操作DOM的添加与删除)

如果需要非常频繁的切换, 使用 v-show 更好

如果在运行时条件很少改变 , 使用 v-if 更好

day _4_10

复习到的vue2的面试内容

https://vue3js.cn/interview/vue/show_if.html#三、v-show与v-if原理分析