前端面试题-vue-MVC和MVVM-VUE常见指令

news/2024/10/18 7:55:13/

前端面试题-vue-MVC和MVVM

  • MVC和MVVM
  • VUE常见指令
  • v-if和v-for 为什么不建议一起使用
  • Vue双向数据绑定原理(响应式原理)(v-model)
  • v-if和v-show的区别

写在最先,不知不觉更新面试题系列也一个月过去了,在这个过程中查漏补缺良多。也来到了熟悉又不太熟悉的VUE阶段。看这些八股文有用吗,我感觉当然是有用的,扩展自己的思维,当在工作中遇到不会的东西的时候。你虽然不能完全上手,但是你至少知道有这么东西存在,你大概能联想到是这个东西。编程需要天赋这是毋庸置疑的,但是我们也要相信任何东西都是勤能补拙的。既然不是天才,那就和比大多数平凡人去更努力一点吧… 这当然枯燥,但是这也很有趣!

MVC和MVVM

MVC的全名是Model View Controller,是模型(model)-视图(view)- 控制器(controller)的缩写,一种软件设计典范
1.model(模型):通常模型对象负责在数据库中存取数据
2.view(视图):是应用程序中处理数据显示的部分
3.Controller (控制器):是应用程序中处理用户交互的部分
MVC的思想:把Controller负责将model的数据用View显示出来,换句话说就是在Controller里面把Model的数据赋值给View。

MVVM新增了VM类。
1.ViewModel层:做了两件事达到了数据的双向绑定,一是将模型转换成视图,即将后端传递的数据转换成所看到的页面。实现的方式是:数据绑定。二是将试图转换为模型,即将所看到的页面转换成后端的数据。实现的方式是dom事件的监听。

MVVM和MVC最大的区别就是:它实现了view和Model的自动同步,也就是当Model的属性改变时,我们不在需要自己动手操作DOM,来改变view的显示,而是改变属性后该属性对应view层显示会自动改变。

整体来看,MVVM比MVC精简给和您,不仅简化了业务与界面的依赖,还解决了数据频繁更新的问题,不用在用选择器来操作DOM元素。

VUE常见指令

指令描述
v-text指令绑定的内容会被当成普通文本去执行,如果内容包含html标签不会解析
v-html指令绑定的内容如果存在html标签会被解析(非必要不建议使用,有安全隐患)
v-bind用于绑定数据和元素属性 简写为:(属性
v-on用于绑定事件 简写为(@)
v-model双向数据绑定
v-if条件判断,为真添加元素,为假删除元素 配套的有(v-elif v-else)
v-for循环 语法为(v-for=“(item,idx) in xxx” :key=idx)
v-show条件判断,为真显示,为假不显示
v-cloack解决页面加载过慢页面上会出现{{}}的情况 页面加载完毕才会显示
v-once只执行一次

v-if和v-for 为什么不建议一起使用

首选编辑器会标红,其次他俩在同一个标签中使用,因为解析时先解析v-for(优先级高)再解析 v-if(优先级低)。 如果遇到需要同时使用时可以考虑成计算属性的方式。

Vue双向数据绑定原理(响应式原理)(v-model)

原理:采用数据劫持,结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter/getter ,在数据变动时发布消息给订阅者,触发相应监听回调。
用户看不到setter和getter,但是在内部他们让VUE追踪依赖没在属性被访问和修改时通知变化。

v-if和v-show的区别

v-if在编译过程中会被转换成三元表达式,条件不满足时不渲染此节点,通过dom运算操作。
v-show 会被编译成指令,条件不满足时控制样式讲对应的节点隐藏,通过css样式.
使用场景
v-if适用于在运行时很少改变条件,不需要频繁的切换使用的场景
v-show 适用于需要非常频繁的切换场景的条件


http://www.ppmy.cn/news/1341713.html

相关文章

虚拟存储器

第五章:虚拟存储器 常规存储管理方式的特征 一次性 驻留性 局部性原理 程序在执行时将呈现出局部性特征,即在一较短的时间内,程序的执行仅局限于某个部分,相应地,它所访问的存储空间也局限于某个区域 时间局限性 …

猫用空气净化器好吗?好用的养猫宠物空气净化器品牌推荐

作为一个养猫五年的资深铲屎官,我对如何轻松快乐地养猫有一些心得。猫咪每天在家里奔跑,导致家里经常会出现“猫毛雪”,沙发、地板和衣服都成了重灾区。在除猫毛的问题上,我真的尝试了各种方法,几乎用上了所有的技能。…

python_蓝桥杯刷题记录_笔记_全AC代码_入门2

前言 现在正式进入蓝桥杯的刷题啦,用python来做算法题,因为我之前其实都是用C来做题的,但是今年的话我打算换python来试试,很明显因为也才这学期接触python 加上之前C做题也比较菜,所以我打算用python重新来做题&#…

小米服务治理——客户端熔断器(Google SRE客户端熔断器)

目录 前言 一、什么是Google SRE熔断器 二、Google SRE 熔断器的工作流程: 三、客户端熔断器 (google SRE 熔断器) golang GRPC 实现 四、客户端熔断器 (google SRE 熔断器) golang GRPC单元测试 大家可以关注个人博客:xingxing – Web Developer …

5、DSP28335 串口发送接收FIFO中断,自定义printf函数

#include "uart.h"unsigned char data[8];void MyUartInit(Uint32 baud) {unsigned char scihbaud 0;unsigned char scilbaud 0;Uint16 scibaud 0;EALLOW;InitSciaGpio();EDIS;EALLOW;//0:一位停止位;1:两位停止位SciaRegs.SCIC…

gitlab 关闭Lets Encrypt证书续签

编辑 /etc/gitlab/gitlab.rb # letsencrypt[enable] nil 并更改 letsencrypt[enable] false重新加载配置 重启gitlab生效 gitlab-ctl reconfigure配置成自己的证书 external_url http://gitlab.example.com开启以下3向即可 nginx[redirect_http_to_https] true nginx[ssl_…

超越传统—Clean架构打造现代Android架构指南

超越传统—Clean架构打造现代Android架构指南 1. 引言 在过去几年里,Android应用开发经历了巨大的变革和发展。随着移动设备的普及和用户对应用的期望不断提高,开发人员面临着更多的挑战和需求。传统的Android架构在应对这些挑战和需求时显得有些力不从…

海外IP代理:解锁网络边界的实战利器

文章目录 引言:正文:一、Roxlabs全球IP代理服务概览特点:覆盖范围:住宅IP真实性:性价比:在网络数据采集中的重要性: 二、实战应用案例一:跨境电商竞品分析步骤介绍:代码示…