• Web前端面试之Vue—对Vue的理解


    目录

    一、web发展历程

    二、vue是什么

    三、Vue核心特性

    组件化

    数据驱动

    指令

    四、Vue与Angular以及React的区别


    一、web发展历程

    Web是World Wide Web的简称,中文译为万维网

    我们可以将它规划成如下的几个时代来进行理解

    • 静态网页:最早的网页是没有数据库的,可以理解成就是一张可以在网络上浏览的报纸,直到CGI技术的出现通过 CGI Perl 运行一小段代码与数据库或文件系统进行交互
    • 微软ASP,JSP的出现:2005 年左右,先后出现了微软的 ASP 和 Java Server Pages [JSP] 等技术,取代了 CGI ,增强了 WEB 与服务端的交互的安全性,其实就是Java + HTML
    • Jquery的出现,以及SPA(Single Page Application 单页面应用)的雏形,Backbone EmberJS AngularJS 这样一批前端框架的出现

    二、vue是什么

    • Vue.js(简称为Vue)是一个用于创建用户界面的开源JavaScript框架
    • 也是一个创建单页应用的Web应用框架。
    • 旨在更好地组织与简化Web开发。
    • Vue所关注的核心是MVC模式中的视图层
    • 它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互

    PS: Vue作者尤雨溪是在为AngularJS工作之后开发出了这一框架。他声称自己的思路是提取Angular中为自己所喜欢的部分,构建出一款相当轻量的框架最早发布于2014年2月

    三、Vue核心特性

    组件化

    组件化就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件

    【精选】Vue 组件化编程、VueComponent实例对象_vuecomponent撖寡情_YuLong~W的博客-CSDN博客

    组件化的优点:

    • 降低系统的耦合度,在保持接口不变的情况下,我们可以替换不同的组件快速完成需求,例如输入框,可以替换为日历、时间、范围等组件作具体的实现
    • 调试方便,由于整个系统是通过组件组合起来的,在出现问题的时候,可以用排除法直接移除组件,或者根据报错的组件快速定位问题,之所以能够快速定位,是因为每个组件之间低耦合,职责单一,所以逻辑会比分析整个系统要简单
    • 提高可维护性,由于每个组件的职责单一,并且组件在系统中是被复用的,所以对代码进行优化可获得系统的整体升级

    数据驱动

    MVVM表示的是 Model-View-ViewModel

    mvvm实现了前后端更好的分离(前端需要的数据只需要请求后端的接口即可)

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

    指令

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

    • 常用指令

      • 条件渲染指令 v-if
      • 列表渲染指令v-for
      • 属性绑定指令v-bind
      • 事件绑定指令v-on
      • 双向数据绑定指令v-model

    四、Vue与Angular以及React的区别

    Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合
    1.与AngularJS的区别
    相同点

    • 都支持指令:内置指令和自定义指令;
    • 都支持过滤器:内置过滤器和自定义过滤器;都支持双向数据绑定;都不支持低端浏览器。
    • 都有双向数据绑定, 但是angular中的双向数据绑定是基于脏检查机制, vue的双向数据绑定是基于ES5的getter和setter来实现

    不同点

    • AngularJS的学习成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比较简单、直观
    • 在性能上,AngularJS有自己实现一套模板编译规则,依赖对数据做脏检查,所以Watcher越多越慢;Vue使用基于依赖追踪的观察并且使用异步队列更新,所有的数据都是独立触发的。
    • vue需要一个el对象进行实例化, 而angular是整个html页面下的,单页面应用, 而vue可以有多个vue实例

    2.与React的区别
    相同点:

    • React采用特殊的JSX语法,Vue.js在组件开发中也推崇编写.vue特殊文件格式,对文件内容都有一些约定
    • 两者都需要编译后使用
    • 中心思想相同:一切都是组件,组件实例之间可以嵌套
    • 都提供合理的钩子函数,可以让开发者定制化地去处理需求
    • 都不内置列数AJAX,Route等功能到核心包,而是以插件的方式加载
    • 在组件开发中都支持mixins的特性

    不同点

    • React采用的Virtual DOM会对渲染出来的结果做脏检查
    • Vue.js在模板中提供了指令,过滤器等,可以非常方便,快捷地操作Virtual DOM

  • 相关阅读:
    QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境Demo
    「每周译Go」这次我们来点不一样的!--《How to Code in Go》系列上线
    [CVE-2023-42442]JumpServer 会话录像文件未授权访问漏洞
    靶向多肽cRGD/细胞穿膜肽TAT/血管肽Angiopep修饰WS2二硫化钨纳米片(cRGD-WS2)
    C语言中volatile/register/const/static/extern/auto关键字的作用
    MySQL 允许SQL最大长度
    对象的解构赋值(基本用法1)
    #DAYU200#OpenHarmony 视频播放器
    Python期末复习题:函数
    c++多态
  • 原文地址:https://blog.csdn.net/qq_62799214/article/details/134040540