当前位置: 首页 > Web前端 > vue.js

01-Vue简介

时间:2023-03-31 19:40:03 vue.js

什么是Vue.js官方解释:Vue(读作/vju?/,类似于view)是一个用于构建用户界面的渐进式框架。与其他大型框架不同,Vue被设计为自下而上逐层应用。Vue的核心库只专注于视图层,不仅易于使用,而且易于与第三方库或现有项目集成。另一方面,当与现代工具链和各种支持库相结合时,Vue也完全有能力为复杂的单页应用程序提供支持。Vue.js可以说是MVVM架构的最佳实践。它是一个JavaScriptMVVM库和一个用于构建用户界面的渐进式框架。着眼于MVVM中的ViewModel,不仅实现了双向数据绑定,而且还是一个相对轻量级的JS库,API简洁。什么是渐进式框架?有人是这样理解的:progressive的意思是:最少的断言。每个框架都不可避免地有自己的特点,对用户会有一定的要求。这些要求是命题。提议的强度将影响它在业务发展中的使用方式。我个人理解progressive就是逐步向前。渐进式意味着我们可以从浅到深,从简单到复杂地使用Vue.js。“Progressive”——这个词在英文中的定义是渐进的,一步一步的,并不是说你必须一下子用完所有的东西。就像搭积木一样,我们可以利用社区的良好生态,根据自己的需要,借助现有的工具和库来搭建我们的项目,以最小、最快的成本一步步搭建起来。Vue.js的优点1、体积小,压缩后只有33K;2.更高的运行效率基于虚拟DOM,一种可以通过JavaScript预先选择各种计算,计算并优化最终DOM操作的技术,由于中国DOM操作是预处理操作,并不实际操作DOM,所以它是称为虚拟DOM。3.双向数据绑定,让开发者免于操作DOM对象,把更多的精力放在业务逻辑上。4.生态丰富,学习成本低市场上有大量成熟稳定的基于Vue.js的UI框架和常用组件!即用型,可快速开发!对初学者友好,上手容易,学习资料多。总的来说,Vue.js是一个值得学习和使用的JavaScript框架。与Angular.js和Reactvue.js相比,Vue.js更轻量,gzip后只有26k,Angular(56k),react(44k)vue.js更易用,学习曲线平滑。Angular很难学,颠覆了学习前端的思路,因为它本来就是写java的人写的。在这方面react比Angular稍微好一点,有一套js语法,但是学习这些也是一个挑战,而且学习react也会照搬一些react全家桶,同样很难学。Vue是最好学的。Vue借鉴了两者的优势,借鉴了Angular的指令和React的组件化。Vue也有很多自己的特点,这是这两者所没有的。Vue在某些方面可能不如React或Angular,但它是渐进的,没有强烈的主张。你可以用它在原来的大系统之上实现一两个组件,把它当作jQuery来使用;你也可以将它用于全家Bucket开发,用作Angular;您还可以使用它的视图来匹配您自己设计的整个下层。您可以在底层数据逻辑中使用OO和设计模式的概念,也可以使用函数方法。这只是一个轻量级的视图。只做该做的,不该做的不做,就这样。我们不需要一上来就了解Vue的每一个组件和功能。我们从核心功能入手,逐步扩展。同时,在使用的时候,我们不需要把所有的组件都拿出来,需要什么就用什么,也可以很方便的把Vue和其他已有的项目或者框架结合起来。Vue.js的核心思想1.数据驱动的ViewModel包括:DOMListeners(监听)和Directives(指令)查看对应的DOM对象。ViewModel是一个非常好的设计。如果没有ViewModel,那么我们View和Model之间的驱动就是手动触发DOM变化,这是一个非常繁琐的过程,而且容易出错。如果我们使用ViewModel,它将被省略。手工操作步骤如下。在Vue.js中,我们只需要改变数据。Vue.js只需要通过Directives命令封装DOM。当数据发生变化时,会通知修改DOM的命令。数据是DOM的自然映射。Vue.js也会监控运行。当我们修改视图时,Vue.js会监控这些变化并改变模型。这会启用双向绑定。使用数据驱动的界面更新,无需操作DOM来更新界面。使用Vue,我们只需要关心如何获取数据,如何处理数据,以及如何编写业务逻辑代码。我们只需要将处理后的数据交给Vue,Vue会自动将数据渲染到模板中(界面上)。vue.js是如何做到这一点的?数据响应原理:数据(model)变化驱动视图(view)自动更新。2、组件化的目的:扩展HTML元素,封装可重用的代码。基于组件的开发,我们可以将网页拆分成独立的组件来编写,以后再将封装好的组件拼接成一个完整的网页。左边是我们的页面,被分成了很多小块。每个块对应一个组件。组件可以嵌套,最终组合成一个完整的页面。在vue.js中,每个组件对应一个ViewModel(右边的小方块)。最后,我们生成了右边ViewModel的类数字结构,它和我们左边的DOM树一一对应。组件设计原则:页面上每个独立的可见/交互区域都被视为一个组件。比如我们页面的header,tail,以及一些可重用的块,都可以抽象成组件。每个组件对应一个项目目录,组件需要的每个组件就近维护在这个目录下。这突出了前端的工程化思维,为前端开发提供了很好的分支策略。每个开发人员都清楚地知道自己开发和维护的功能单元,代码必须存在于自己的组件目录中。在这个目录下你可以清楚的知道自己的功能的内部逻辑和资源,不管是样式,js,还是页面结构,都在里面。在Vue.js中,可以使用.vue文件将组件依赖的模板、js、样式写在一个文件中,将就近维护的思想发挥到了极致。页面只是组件的容器,组件可以自由嵌套组合形成一个完整的页面。MVVM模式文章开头也提到‘Vue.js可以说是MVVM架构的最佳实践,它是一个JavaScriptMVVM库’。那么什么是MVVM?MVVM由Model、View、ViewModel三部分组成:M:Model层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。V:View代表UI组件,负责将数据模型转换成UI展示。也就是说,DOM层或用户界面VM:ViewModel是同步View和Model的对象,用于处理数据和界面的中间层。在MVVM架构下,View和Model之间没有直接联系,而是通过ViewModel。相互影响。Model和ViewModel的交互是双向的,View数据的变化会同步到Model,Model数据的变化会立即反映到View上。ViewModel通过双向数据绑定连接View层和Model层,View和Model之间的同步是完全自动的,不需要人为干预,所以开发者只需要关注业务逻辑,不需要手动操作DOM。需要注意数据状态的同步,复杂数据状态的维护完全由MVVM管理。Vue的常用网站Vue官方文档:https://cn.vuejs.org/v2/guide/Vue资源选择:http://vue.awesometiny.com/VueGitHub地址:https://github.com/vuejs/基于vue和element的vueBackend前端解决方案:https://panjiachen.github.io/vue-element-admin-site/zh/