vue考察点

为什么推荐使用axios?

由于vuejs2.0以上特别推出SSR,这个是要在服务端适应node.js做服务端渲染的,因此存在在浏览器端和服务器端同时使用http请求的需求,而axios正好满足这个需求

如何解决v-if/v-show还未完全编译时其{{message}}内容会闪现的问题?

使用v-cloak

v-if和v-for共存时,哪个优先级高?

v-for的优先级要高于v-if,也就是说先做v-for的loop,随后对每一个loop再应用v-if判断

如何给webpack构建出来的bundle瘦身?

Webpack是一个开源的前端模块构建工具,它提供了强大的loader API来定义对不同文件格式的预处理逻辑,这是.vue后缀单文件组件形式的基础。所以在此基础上,尤大开发的vue-loader允许将模板、样式、逻辑三要素整合在同一个文件中,以.vue文件后缀形成单文件组件格式,方便项目架构和开发引用。

使用source-map-explorer 或者 webpack-bundle-analyzer 对build出来的sourcemap做分析,可视化的列出bundle最终是由哪些js文件组成,然后自己去分析

vuejs2.0的核心思想

核心思想是:

数据驱动,

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

原理:

1 将原生的数据改造成 “可观察对象”,通常为,调用defineProperty改变data对象中数据为存储器属性。一个可观察对象可以被取值getter,也可以被赋值setter。

2 在解析模板,也就是在watcher的求值过程中,每一个被取值的可观察对象都会将当前的watcher注册为自己的一个订阅者,并成为当前watcher的一个依赖。

3 当一个被依赖的可观察对象被赋值时,它会通知notify所有订阅自己的watcher重新求值,并触发相应的更新,即watcher对象中关联的DOM改变渲染。

组件系统,

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

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

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

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

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

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

7.动画系统:当一个元素的可见性变化时,用户不仅可以很简单地定义对应的CSS Transition或Animation效果,还可以利用丰富的JavaScript钩子函数进行更底层的动画处理。

8.可扩展性:除了自定义指令、过滤器和组件,Vue.js还提供了灵活的mixin机制,让用户可以在多个组件中复用共同的特性。

posted @ 2019-06-11 13:59  但沉默。  阅读(221)  评论(0编辑  收藏  举报