对于Vue是一套渐进式框架的理解
问题一:vue.js的两个核心是什么?
1、数据驱动,也叫双向数据绑定。
Vue.js数据观测原理在技术实现上,利用的是ES5Object.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是带有比较强的排它性的,如果你的应用不是从头开始,而是要不断考虑是否跟其他东西集成,这些主张会带来一些困扰。
比如说,你要使用React,你必须理解:
- 函数式编程的理念,
- 需要知道什么是副作用,
- 什么是纯函数,
- 如何隔离副作用
- 它的侵入性看似没有Angular那么强,主要因为它是软性侵入。
Vue与React、Angular的不同是,但它是
渐进的
:
-
你可以在原有大系统的上面,把一两个组件改用它实现,当jQuery用;
-
也可以整个用它全家桶开发,当Angular用;
-
还可以用它的视图,搭配你自己设计的整个下层用。
-
你可以在底层数据逻辑的地方用OO和设计模式的那套理念,
-
也可以函数式,都可以,它只是个轻量视图而已,只做了最核心的东西。