Vue.js 核心概念解析:理解渐进式框架的本质

发表时间: 2019-03-03 10:36

问题一:vue.js的两个核心是什么?

1、数据驱动,也叫双向数据绑定。

Vue.js数据观测原理在技术实现上,利用的是ES5的Object.defineProperty和存储器属性: getter和setter(所以只兼容IE9及以上版本),可称为基于依赖收集的观测机制。核心是VM,即ViewModel,保证数据和视图的一致性。

2、组件系统。

.vue组件的核心选项:

1、模板(template):模板声明了数据和最终展现给用户的DOM之间的映射关系。

2、初始数据(data):一个组件的初始数据状态。对于可复用的组件来说,这通常是私有的状态。

3、接受的外部参数(props):组件之间通过参数来进行数据的传递和共享。

4、方法(methods):对数据的改动操作一般都在组件的方法内进行。

5、生命周期钩子函数(lifecycle hooks):一个组件会触发多个生命周期钩子函数,最新2.0版本对于生命周期函数名称改动很大。

6、私有资源(assets):Vue.js当中将用户自定义的指令、过滤器、组件等统称为资源。一个组件可以声明自己的私有资源。私有资源只有该组件和它的子组件可以调用。

等等。

问题二:对于 Vue 是一套 构建用户界面的 渐进式框架 的理解

渐进式代表的含义是:没有多做职责之外的事。

vue.js只提供了 vue-cli 生态中最核心的 组件系统 和 双向数据绑定。

像vuex、vue-router都属于围绕 vue.js开发的库。

比如说,你要使用Angular,必须接受以下东西:

angular

  • 必须使用它的模块机制
  • 必须使用它的依赖注入-
  • 必须使用它的特殊形式定义组件(这一点每个视图框架都有,难以避免)

所以Angular是带有比较强的排它性的,如果你的应用不是从头开始,而是要不断考虑是否跟其他东西集成,这些主张会带来一些困扰。

比如说,你要使用React,你必须理解:

react

  • 函数式编程的理念,
  • 需要知道什么是副作用,
  • 什么是纯函数,
  • 如何隔离副作用
  • 它的侵入性看似没有Angular那么强,主要因为它是软性侵入。

Vue与React、Angular的不同是,但它是渐进的:

三大框架

  • 你可以在原有大系统的上面,把一两个组件改用它实现,当jQuery用;
  • 也可以整个用它全家桶开发,当Angular用;
  • 还可以用它的视图,搭配你自己设计的整个下层用。
  • 你可以在底层数据逻辑的地方用OO和设计模式的那套理念,
  • 也可以函数式,都可以,它只是个轻量视图而已,只做了最核心的东西。