使用vue.js做开发快两年了,对vue的优缺点有一点自己的见解,跟大神比不了,但是面试基本够用

  vue在国内能被广泛使用的首要原因是它是基于mvvm框架做开发的,mvvm是前端开发中一种很有影响力的模式,在mvvm中,m代表model 即模型,model中集中粗出变量以及变量的值,v代表view 即视图,集中存储html和css,vm是二者名字的结合,viewmodel,我猜测这样命名应该是找不到合适的名字替代了~~,很多人沿用mvc的controller对mvvm的vm进行中文命名,mvc也是控制器,mvvm也是控制器,说起vm可老厉害了,厉害在哪呢,又是做什么的呢,vm是衔接同步view和model的数据交互控制器,源代码中的什么数据劫持,订阅者-发布者,这么复杂的定义,就留给大神和vue项目组研究吧,我们不要没研究透,反而越来越糊涂,vue有量大系统,第一,通知系统,第二,虚拟dom树,vue对象创建后,会自动引入data对象,data就是模型数据,data中的每一个变量都会自动添加两个访问器属性_set()和_get(),调用变量实际上是调用的访问器属性,当数据发生变化后,就会调用访问器属性,调用访问器属性就会触发通知系统,vm获得通知后就对虚拟dom树进行遍历,并修改需要修改的数据,然后同步到view中,这就是mvvm或者说vue事项双向绑定的原理,虚拟dom树是vm扫描真实dom树创建的一棵极其精简的dom树,只保存变化和可能变化的元素,一点多余的东西都没有,所以遍历极快,而且还封装了dom的重复的增删改查操作,所以能极大地简化代码,这个也符合vue是一个轻量级框架的名号。

vue做SPA应用的用户体验还是不错的,性能也比较好,开发起来也比较简单,也能实现前后端分离

vue的大量封装既是优点又是缺点,做seo那叫一个累啊,报错又不明显,复杂的页面代码非常累赘,加载效率么--谁用谁知道,就和用了2M的宽带似的

多提一嘴mvc和mvvm的区别吧,mvc是比较早的偏后端开发的模式,而且各做各的事,互不干扰,想做双向绑定就只能dom模拟,但是mvvm是实现了响应式的双向数据绑定的,而且还是基于mvc模式演变出来的,你能做的我也能做,你没实现的我却能实现,所以mvvm模式更受前端市场的欢迎!

面试够用,大神手下留情~~

转载的麻烦贴的原地址哈,尊重一下他人劳动成果!

Vue的优缺点的更多相关文章

  1. jQuery的优缺点,与vue的不同,vue的优缺点?

    jq优点: 比原生js更易书写, 封装了很多api, 有丰富的插件库; 缺点: 每次升级与之前版本不兼容, 只能手动开发, 操作DOM很慢, 不方便, 变量名污染, 作用域混淆等. vue优缺点: 双 ...

  2. react 和 vue 的优缺点总结

    React推广了Virtual DOM并创造了新的语法——JSX,JSX允许开发者在JavaScript中书写HTML Vue使用模板系统而不是JSX,但能对现有应用的升级更加容易,这是因为模板用的就 ...

  3. Vue面试题整理

    1:什么是MVVM MVVM是是Model-View-ViewModel的缩写,Model代表数据模型,定义数据操作的业务逻辑,View代表视图层,负责将数据模型渲染到页面上,ViewModel通过双 ...

  4. vue问题整理

    生命周期面试题 1.什么是 vue 生命周期 vue 实例从创建到销毁的过程就是生命周期. 也就是从开始创建.初始化数据.编译模板.挂在 dom -> 渲染.更新 -> 渲染.卸载等一系列 ...

  5. Vue2.0+Node.js+MongoDB全栈打造商城系统 免费下载

    <ignore_js_op> 课程目录||--第01章 课程介绍|    01-01 课程-导学.mp4|    01-02 前端框架回顾.mp4|    01-03 vue概况以及核心思 ...

  6. 2018VUE面试题总结

      Vue面试题 一:什么是MVVM MVVM是是Model-View-ViewModel的缩写,Model代表数据模型,定义数据操作的业务逻辑,View代表视图层,负责将数据模型渲染到页面上,Vie ...

  7. Web前端面试题整合,持续更新【可以收藏】

    饭后闲来无事,把这几年带学生用的一些面试题整合一下,供上!拿走,不客气!应付一般公司的二面基本上是够用了.祝你早日拿到心仪的offer. css相关 1. 万能居中 1.margin: 0 auto; ...

  8. legend2---开发日志7(vue的使用场景有哪些,或者说使用的优缺点)

    legend2---开发日志7(vue的使用场景有哪些,或者说使用的优缺点) 一.总结 一句话总结:任何页面都可以使用vue,尤其是有交互的或者用ajax的,但是vue插件及其它各种插件加载需要时间, ...

  9. vue中axios配置代理的俩种方式及优缺点

    概述:Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中 当我们使用vue向服务器发送AJAX请求时,我们会遇到跨域问题,一般跨域的解决方案有俩种,一种是官 ...

随机推荐

  1. Django记录数据库创建、更新、删除操作开源插件推荐

    github: django-simple-history - 安装 $ pip install django-simple-history - 配置 在Settings中添加 INSTALLED_A ...

  2. CodeReview 的经验和原则

    资深的程序员都知道 Code Review 可以对代码质量,代码规范,团队代码能力提升带来很大的提升,还有著名的技术专家"左耳朵耗子"也说过: 我认为没有 Code Review ...

  3. Elasticsearch+SpringBoot报NoNodeAvailableException解决方案

    Elasticsearch整合SpringBoot 首先大家在整合的时候一定要注意版本兼容问题,此问题尤为重要 Elasticsearch简称Es 在使用SpringBoot整合Elasticsear ...

  4. Windows下 Navicat Premium 15安装教程(图文,含注册)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://www.cnblogs.com/zhangzhicheng1996/ ...

  5. 你真的会做 2 Sum 吗?| 含双重好礼

    小预告:文末有两份福利,记得看到最后哦- 2 Sum 这题是 Leetcode 的第一题,相信大部分小伙伴都听过的吧. 作为一道标着 Easy 难度的题,它真的这么简单吗? 我在之前的刷题视频里说过, ...

  6. python 11 类与对象

    给大家介绍对象hhhh 封装 举个例子,把乱七八糟的数据仍到列表,数据层面的封装 把常用的代码打包成一个函数,封装 外观特征(静态) 能做什么(动态) 对象=属性(静态) + 方法(动态) 1.方法多 ...

  7. 第3章 SparkSQL解析

    第3章 SparkSQL解析 3.1 新的起始点SparkSession 在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫 ...

  8. 仿京东BOE官网 html代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Mysql锁【转】

    一.概述 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则.对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外. M ...

  10. mysql事务级别和spring中应用

    一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...