vue面试题——描述一下vue

news2024/11/26 1:53:52

目录

    • 1 vue是什么
    • 2 Vue的核心特性
      • 2.1 数据驱动(MVVM)
      • 2.2 组件化
      • 2.3 指令系统
    • 3 Vue跟传统开发的区别

1 vue是什么

  简单点说,vue就是一个用于创建用户界面的JavaScript框架,同时也是一个创建单页面应用的Web应用框架,Vue关注的核心是MVC(Modle-View-Controller)中的视图层(View)。同时,Vue能方便地获取数据,并且通过组件内部特定的方法(主要是双向绑定)实现视图与模型的交互。

2 Vue的核心特性

2.1 数据驱动(MVVM)

(1)什么是数据驱动
  所谓数据驱动,就是视图是由数据驱动生成,我们更新视图是通过修改数据更新的,而不是直接操作DOM。

(2)MVVM

MVVM表示的是Model-View-ViewModel

  • Model:模型层,负责业务处理逻辑以及和服务端进行交互
  • View:视图层,负责将数据模型转化为UI(界面)展示出来,可以简单理解为HTML页面
  • ViewModel:视图模型层,用来连接Model和View(两者通信的桥梁)

下面用代码展示Model、View以及ViewModel到底是什么:

在这里插入图片描述

  • View和Model是如何通过ViewModel进行通信的?

    在这里插入图片描述

    ① 从View这边看:ViewModel中的DOM监听器(DOM Listeners)监听DOM元素的变化,当DOM元素发生变化时,Model中的数据也随之变化。
    eg.当我们从输入框输入数据时,Model中的数据页会更新为我们输入的数据
    在这里插入图片描述

    ② 从Model这边看:数据绑定绑定了Model中的数据,Model钟的数据变化会反馈到视图中。
    eg.在message中输入‘哈哈哈’字符串,视图中的输入框中也会出现该字符串。

    在这里插入图片描述
    在这里插入图片描述

2.2 组件化

(1)什么是组件化
  Vue组件化是指将一个应用划分为多个独立的、可复用的模块,每个模块都包含自己的HTML模板、CSS样式以及JavaScript逻辑三个部分。在Vue中,每个.vue文件就是一个组件。

(2)组件化的优点

  • 降低系统的耦合度(模块间的依赖程度):需求相同的组件可以相互替换,快速完成开发。例如,输入框可以换成下拉框、日历等。
  • 调试方便:由于组件之间是低耦合的,因此可以单独对组件进行调试,而不是对整个系统进行调试。
  • 提高系统的可维护性:由于每个组件的职责单一,并且组件在系统中是可以被复用的,因此对代码进行优化可获得系统的整体升级。

2.3 指令系统

  指令 (Directives) 是带有 v- 前缀的特殊属性作用:当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM

常用的指令:

  • 内容渲染指令‌:
    v-text‌:将变量的值作为纯文本输出。
    v-html‌:‌将变量的值作为HTML解析和渲染。

  • 条件判断指令‌:
    v-if:根据条件判断是否渲染元素。
    v-else‌、‌v-else-if‌:与v-if配合使用进行条件判断。
    v-show‌:根据条件控制元素的显示和隐藏。

  • 事件绑定指令‌:
    v-on‌(或缩写为@):绑定事件监听器。

  • 属性绑定指令‌:
    v-bind‌:动态绑定属性。

  • ‌列表渲染指令‌:
    v-for‌:‌基于数据集合渲染列表。

  • 双向绑定指令‌:
    v-model‌:‌在表单控件上创建双向数据绑定。

  • 其他指令‌:
    v-slot‌:插槽。
    v-once‌:‌只渲染元素和组件一次。
    ‌v-cloak‌:防止模板内容在编译完成前显示。

3 Vue跟传统开发的区别

  主要的区别有以下两个:

  • Vue所有的界面事件都是去操作数据的,而传统开发操作DOM
  • Vue所有界面的变动都是通过数据自动绑定出来的,而传统开发操作DOM

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

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

相关文章

Large Spatial Model:End-to-end Unposed Images to Semantic 3D 论文解读

目录 一、概述 二、相关工作 1、SfM和可微神经表示 2、端到端的Image-to-3D 三、LSM 1、密集几何预测 2、2D信息特征提取 3、点特征融合 4、可微渲染 5、损失函数 四、实验 一、概述 该论文提出一种大型空间模型(Larget Spatial Model,LSM)…

A045-基于spring boot的个人博客系统的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

VMware17安装之VMware Workstation Pro 16升级到17详细教程

VMware17安装之VMware Workstation Pro 16升级到17详细教程 一、下载安装包二、开始安装三、升级成功 当前使用的是VMware Workstation 16 Pro版本,想用最新的17,但是又不想卸载原来的,所以想尝试下看看能不能直接升级,最终升级成…

nature communications论文 解读

题目《Transfer learning with graph neural networks for improved molecular property prediction in the multi-fidelity setting》 这篇文章主要讨论了如何在多保真数据环境(multi-fidelity setting)下,利用图神经网络(GNNs&…

接口上传视频和oss直传视频到阿里云组件

接口视频上传 <template><div class"component-upload-video"><el-uploadclass"avatar-uploader":action"uploadImgUrl":on-progress"uploadVideoProcess":on-success"handleUploadSuccess":limit"lim…

深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录

深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录 认识RKNN Toolkit2 工程文件学习路线&#xff1a; Anaconda Miniconda安装.condarc 文件配置镜像源自定义conda虚拟环境路径创建Conda虚拟环境 本地训练环境本地转换环境安装 RKNN-Toolkit2&#xff1a;添加 lin…

07-SpringCloud-Gateway新一代网关

一、概述 1、Gateway介绍 官网&#xff1a;https://spring.io/projects/spring-cloud-gateway Spring Cloud Gateway组件的核心是一系列的过滤器&#xff0c;通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。 Spring Cloud Gateway是加在整个微服务最前沿的防…

美创科技入选2024数字政府解决方案提供商TOP100!

11月19日&#xff0c;国内专业咨询机构DBC德本咨询发布“2024数字政府解决方案提供商TOP100”榜单。美创科技凭借在政府数据安全领域多年的项目经验、技术优势与创新能力&#xff0c;入选收录。 作为专业数据安全产品与服务提供商&#xff0c;美创科技一直致力于为政府、金融、…

Java编程,配置mongoUri连接mongodb时,需对特殊字符进行转义

一、背景 java程序连接mongo有两种方式&#xff1a; 用户名和密码方式uri方式 1、用户名和密码 以用户数据库为例&#xff0c;注意看它的密码 spring:data:mongodb:host: 192.168.10.17database: db_user_serviceport: 3717username: user_servicepassword: user_service3…

MySQL底层概述—1.InnoDB内存结构

大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.InnoDB引擎架构 (1)InnoDB引擎架构图 (2)InnoDB内存结构 (1)InnoDB引擎架构图 下面是InnoDB引擎架构图&#xff0c;主要分为内存结构和磁…

【Github】如何使用Git将本地项目上传到Github

【Github】如何使用Git将本地项目上传到Github 写在最前面1. 注册Github账号2. 安装Git工具配置用户名和邮箱仅为当前项目配置&#xff08;可选&#xff09; 3. 创建Github仓库4. 获取仓库地址5. 本地操作&#xff08;1&#xff09;进入项目文件夹&#xff08;2&#xff09;克隆…

大事件管理系统项目总结(上)

文章目录 大事件管理系统项目总结&#xff08;上&#xff09;Pinia - 配置仓库统一管理Vue3路由配置Vue3导航拦截 大事件管理系统项目总结&#xff08;上&#xff09; Pinia - 配置仓库统一管理 使用pinia多层文件夹嵌套时&#xff0c;导入某个文件的路径会很长&#xff0c;容…

鸿蒙征文|鸿蒙心路旅程:始于杭研所集训营,升华于横店

始于杭研所 在2024年7月&#xff0c;我踏上了一段全新的旅程&#xff0c;前往风景如画的杭州&#xff0c;参加华为杭研所举办的鲲鹏&昇腾集训营。这是一个专门为开发者设计的培训项目&#xff0c;中途深入学习HarmonyOS相关技术。对于我这样一个对技术充满热情的学生来说&…

flowable流程图详细绘制教程

文章目录 前言一、flowable是什么&#xff1f;回答下之前的问题 二、flowable-modeler使用1. 使用步骤2.开始绘制弄一个请假的流程 三 加载该流程总结 前言 flowable有些晦涩难懂的东西&#xff1a; 我最开始接触的时候,还是用的activity,当时觉得好复杂,那么这次经过我自己在…

【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行

文章目录&#xff1a; 【Linux 篇】Docker 的容器之海与镜像之岛&#xff1a;于 Linux 系统内探索容器化的奇妙航行前言安装docker-centos7 【Linux 篇】Docker 的容器之海与镜像之岛&#xff1a;于 Linux 系统内探索容器化的奇妙航行 &#x1f4ac;欢迎交流&#xff1a;在学习…

linux从0到1——shell编程9

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

go项目中比较好的实践方案

工作两年来&#xff0c;我并未遇到太大的挑战&#xff0c;也没有特别值得夸耀的项目。尽管如此&#xff0c;在日常的杂项工作中&#xff0c;我积累了不少心得&#xff0c;许多实践方法也在思考中逐渐得到优化。因此&#xff0c;我在这里记录下这些心得。 转发与封装 这个需求…

Maven的安装——给Idea配置Maven

一、什么是Maven? Maven是一个开源的项目管理工具&#xff0c;它主要用于Java项目的构建、依赖管理和项目生命周期管理。 二、准备环境 maven安装之前&#xff0c;我们要先安装jdk&#xff0c;确保你已经安装了jdk环境。可以通过【win】【r】打开任务管理器&#xff0c;输入…

vscode 远程连接ssh 密钥方式

目录 1. powershell 生成key&#xff1a; 2. 在服务器上安装公钥 linux测试成功&#xff1a; 3).为了确保连接成功&#xff0c;输入如下指令以保证以下文件权限正确&#xff1a; 3 开启 ssh 密钥登录 vscode 远程连接配置 python连接测试ok 查看日志&#xff1a; 命令…

Charles抓包工具-笔记

摘要 概念&#xff1a; Charles是一款基于 HTTP 协议的代理服务器&#xff0c;通过成为电脑或者浏览器的代理&#xff0c;然后截取请求和请求结果来达到分析抓包的目的。 功能&#xff1a; Charles 是一个功能全面的抓包工具&#xff0c;适用于各种网络调试和优化场景。 它…