说说你对vue的理解?
参考答案:
Vue.js(/vjuː/,或简称为Vue)是一个用于创建用户界面的开源JavaScript框架,也是一个创建单页应用的Web应用框架。
Vue 是一套用于构建用户界面的渐进式MVVM框架。那怎么理解渐进式呢?渐进式含义:强制主张最少。
Vue.js包含了声明式渲染、组件化系统、客户端路由、大规模状态管理、构建工具、数据持久化、跨平台支持等,但在实际开发中,并没有强制要求开发者使用某一特定功能,而是根据需求逐渐扩展。
Vue所关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互。
Vue.js的核心库只关心视图渲染,且由于渐进式的特性,Vue.js便于与第三方库或既有项目整合。Vue.js 实现了一套声明式渲染引擎,并在runtime或者预编译时将声明式的模板编译成渲染函数,挂载在观察者 Watcher 中,在渲染函数中(touch),响应式系统使用响应式数据的getter方法对观察者进行依赖收集(Collect as Dependency),使用响应式数据的setter方法通知(notify)所有观察者进行更新,此时观察者 Watcher 会触发组件的渲染函数(Trigger re-render),组件执行的 render 函数,生成一个新的 Virtual DOM Tree,此时 Vue 会对新老 Virtual DOM Tree 进行 Diff,查找出需要操作的真实 DOM 并对其进行更新。
题目要点:
渐进式框架:Vue.js是一个渐进式MVVM(模型-视图-视图模型)框架,其“渐进式”意味着它不强求开发者一次性接受所有功能,而是允许开发者根据项目需求逐步采用Vue的不同特性。
功能特点:
- 声明式渲染:Vue.js通过声明式的方式让开发者描述应用的状态,框架会自动渲染视图。
- 组件化系统:Vue.js采用组件化架构,使得代码更加模块化和可复用。
- 客户端路由:Vue提供了Vue Router,用于单页应用的路由管理。
- 状态管理:通过Vuex等工具实现大规模状态的管理。
- 构建工具:Vue提供了Vue CLI等构建工具,以提升开发效率。
- 数据持久化:Vue可以与其他库或服务结合使用,以实现数据的持久化。
- 跨平台支持:Vue.js可以与Weex等平台结合,实现跨平台应用的开发。
视图层关注:Vue.js主要关注MVC模式中的视图层,简化了视图与模型的交互过程。
响应式系统:
- Vue.js的核心库实现了声明式渲染引擎,将模板编译成渲染函数。
- 在运行时或预编译阶段,Vue.js的响应式系统会通过数据的getter和setter方法实现数据的依赖收集和通知更新。
- 当数据变化时,观察者(Watcher)会触发组件的重新渲染,Vue.js会通过Diff算法比较新旧虚拟DOM树,并只更新必要的真实DOM元素。