没有合适的资源?快使用搜索试试~ 我知道了~
2023年最新的Vue全套面试题(含答案)
需积分: 1 30 下载量 134 浏览量
2023-05-06
11:09:27
上传
评论 1
收藏 1.45MB DOCX 举报
温馨提示
试读
15页
2023年最新的Vue全套面试题(含答案)
资源推荐
资源详情
资源评论
1、介绍一下 MVC MVVM
1. 什么是 MVVM?
在 MVVM 框架下 视图和模型是不能直接通信 的,只能通过 ViewModel 进行交互,它能够
监
听到数据的变化,然后通知视图进行自动更新,而当用户操作视图时,VM 也能监听到视图
的变化,然后通知数据做相应改动,这实际上就实现了数据的 双向绑定 。并且 V 和 VM
可以
进行通信。
Model(模型)
模型是指代表真实状态内容的领域模型(面向对象),或指代表内容的数据访问层(以数据
为中
心)。
View(视图)
就像在 MVC 和 MVP 模式中一样,视图是用户在屏幕上看到的结构、布局和外观(UI)。
ViewModel(视图模型)
视图模型是暴露公共属性和命令的视图的抽象。MVVM 没有 MVC 模式的控制器,也没有
MVP 模式的
presenter,有的是一个绑定器。在视图模型中,绑定器在视图和数据绑定器之间进行通信。
优点:
低耦合 :View 可以独立于 Model 变化和修改,一个 ViewModel 可以绑定到不同的 View 上,当
View 变化
的时候 Model 可以不变,当 Model 变化的时候 View 也可以不变。
可重用性 : 可以把一些视图逻辑放在一个 ViewModel 里面,让很多 View 重用这段视图逻辑。
独立开发 : 开发人员可以专注于业务逻辑和数据的开发,设计人员可以专注于页面的设计。
2. 什么是 MVC?
MVC 是应用最广泛的软件架构之一,一般 MVC 分为:Model(模型),View(视图),Controller(控制
器)。 这主要是基于分层的目的,让彼此的职责分开.View 一般用过 Controller 来和 Model 进
行联系。Controller 是 Model 和 View 的协调者,View 和 Model 不直接联系。基本都是单向
联系。M 和 V 指的意思和 MVVM 中的 M 和 V 意思一样。C 即 Controller 指的是页面业务逻
辑。MVC 是单向通信。也就是 View 跟 Model,必须通过 Controller 来承上启下。
Model(模型)表示应用程序核心(如数据库)。
View(视图)显示效果(HTML 页面)。
Controller(控制器)处理输入(业务逻辑)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责
在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。 通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。 通常控制器负责从视图读取
数据,控制用户输入,并向模型发送数据。
优点:
低耦合
重用性高
生命周期成本低
部署快
可维护性高
有利软件工程化管理
3. MVC 与 MVVM 的区别:
MVC 和 MVVM 的区别并不是 VM 完全取代了 C,ViewModel 存在目的在于抽离 Controller
中展示的业务逻辑,而不是替代 Controller,其它视图操作业务等还是应该放在 Controller
中实现。也就是说 MVVM 实现的是业务逻辑组件的重用。
MVC 中 Controller 演变成 MVVM 中的 ViewModel
MVVM 通过数据来显示视图层而不是节点操作
MVVM 主要解决了 MVC 中大量的 dom 操作使页面渲染性能降低,加载速度变慢,影响用户体
验
2、为什么 data 是一个函数
组件的 data 写成一个函数,数据以函数返回值形式定义,这样每复用一次组件,就会返回
一分新的 data,类似于给每个组件实例创建一个私有的数据空间,让各个组件实例维护各
自的数据。而单纯的写成对象形式,就使得所有组件实例共用了一份 data,就会造成一个
变了全都会变的结果。
3、Vue 组件通讯有哪些方式?
1、props 和 $emit。父组件向子组件传递数据是通过 props 传递的,子组件传递给父组件
是通过$emit 触发事件来做到的。
2、$parent 和 $children 获取单签组件的父组件和当前组件的子组件。
3、$attrs 和 $listeners A -> B -> C。Vue2.4 开始提供了$attrs 和$listeners 来解决这个问题。
4、父组件中通过 provide 来提供变量,然后在子组件中通过 inject 来注入变量。(官方不
推荐在实际业务中适用,但是写组件库时很常用。)
5、$refs 获取组件实例。
6、envetBus 兄弟组件数据传递,这种情况下可以使用事件总线的方式。
剩余14页未读,继续阅读
资源评论
千源万码
- 粉丝: 763
- 资源: 368
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功