vue的分享知识

2020-05-18  本文已影响0人  RadishHuang

1、简介:

2、渐进式框架:

3、Vue.js的特性如下:

易用:

Vue虽然是一个比较轻量级的框架,简单轻量的同时还非常的人性化,其提供的API也是非常的容易理解,同时也提供了一些很便捷的指令和属性。

小巧:

说起小巧,那应该首先要关注下Vue的源码大小,Vue的成产版本(即min版)源码仅为72.9kb,官网称gzip压缩后只有25.11kb,相比Angular的144kb缩小了一半。小巧的一种好处就是可以让用户更自由的选择相应的解决方案,在配合其他库方面它给了用户更大的空间。

灵活:

Vue的核心默认是不包含路由和 Ajax 功能,但是如果项目中需要路由和AJAX,可以直接使用Vue提供的官方库Vue-router及第三方插件vue-resource axios request,同时你也可以使用其他你想要使用的库或插件,如jQueryAJAX等。

4、双向绑定

Vue的一个核心的概念就是双向绑定,在reactangular中都有双向绑定的概念。所谓的双向绑定就是,数据变化更新视图,视图变化更新数据。

blind.jpg
vue中常见的双向绑定方式v-model 指令
<input v-model="text" />
上例不过是一个语法糖,展开来是
<input :value="text"  @input="e => text = e.target.value"/>
双向绑定思路分析

5、Vue的另一个核心概念虚拟dom

为什么需要虚拟DOM

DOM是很慢的,其元素非常庞大,页面的性能问题鲜有由JS引起的,大部分都是由DOM操作引起的。如果对前端工作进行抽象的话,主要就是维护状态和更新视图;而更新视图和维护状态都需要DOM操作。其实近年来,前端的框架主要发展方向就是解放DOM操作的复杂性。在jQuery出现以前,我们直接操作DOM结构,这种方法复杂度高,兼容性也较差;有了jQuery强大的选择器以及高度封装的API,我们可以更方便的操作DOM。但是对于程序员来说,不可能仅仅满足于此。因此诞生了angular vue react等MVVM使用数据双向绑定,使得我们完全不需要操作dom,更了数据状态,视图就会自动更新。但是大量的事件绑定,使得在复杂的场景下执行会导致性能问题。因此就诞生了一种兼顾开发效率和执行效率的方案。引入虚拟dom。

什么是虚拟Dom
理解虚拟Dom
var vdom = velement('div', { 'id': 'container' }, [
    velement('h1', { style: 'color:red' }, ['simple virtual dom']),
    velement('p', ['hello world']),
    velement('ul', [velement('li', ['item #1']), velement('li', ['item #2'])]),
]);

上面的JS代码可以表示成这样的DOM结构

<div id="container">
    <h1 style="color:red">simple virtual dom</h1>
    <p>hello world</p>
    <ul>
        <li>item #1</li>
        <li>item #2</li>
    </ul>   
</div>
var patches = {
        1:{type:REPLACE,node:newNode}, //h1节点变成h5
        5:{type:REORDER,moves:changObj} //ul新增了子节点li
    }

6、对比

1.渲染性能

渲染用户界面的时候,dom的操作成本是最高的,那为了尽可能的减少对dom的操作,Vue和React都利用虚拟DOM来实现这一点,但Vue的Virtual DOM实现(一个陷阱的叉子)的权重要轻得多,因此比React的引入开销更少。Vue 和 React 也提供功能性组件,这些组件因为都是没有声明,没有实例化的,因此会花费更少的开销。当这些都用于关键性能的场景时,Vue 将会更快。

2.更新性能

在react中,当一个组件的状态发生变化时,它将会引起整个组件的子树都进行重新渲染,从这个组件的根部开始。那为了避免子组件不必要的重新渲染,您需要随时使用shouldComponentUpdate,并使用不可变的数据结构。 在Vue中,组件的依赖关系在它的渲染期间被自动跟踪,因此系统准确地知道哪些组件实际上需要重新渲染。这就意味着在更新方面,vue也是快于React

3.开发中

在开发中,Vue 每秒最高处理 10 帧,而 React 每秒最高处理不到 1 帧。这是由于 React 有大量的检查机制,这会让它提供许多有用的警告和错误提示信息。vue在实现这些检查时,也更加密切地关注了性能方面。

7、Vue生命周期:

alive.png
alive_code.png mounted.png

8、基于Vue.js开发

vue的使用分为两种

1、直接导入vue.js

<!--下载vue.js包,本地导入-->
<script src="./vue.min.js" type="text/javascript" charset="utf-8"></script>

<!-- 开发环境版本,包含了用帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>

2、搭建webpack脚手架

# 全局安装 vue-cli
$ npm install --global vue-cli
# 创建一个基于 webpack 模板的新项目
$ vue init webpack my-project
# 安装依赖,走你
$ cd my-project
$ npm run dev

9、常用第三方类库

vuex

vuex官方文档

使用vuex为了解决界面上通用的数据可以在每个页面,子页面都能很方便,快速直接使用。可以快速实现双向绑定。

UI界面框架
网络请求:

axios request

10、SSR服务端渲染:

服务端渲染实现原理机制:在服务端拿数据进行解析渲染,直接生成html片段返回给前端。然后前端可以通过解析后端返回的html片段到前端页面,由于服务端渲染前端页面,必将会给服务器增加压力。关于vue的ssr渲染,个人感觉是就是一个空间换时间的操作。

为什么要使用ssr
vue或react框架获取资源流程

没错这里面最耗时的时间是4,5这两步骤,h5请求serverapi的过程本身除了服务器的限制,还有用户网络,宽带等等诸多限制,并且当页面逻辑过多,数据过于繁琐的情况下,我们的vue在client端渲染也会成为性能瓶颈。

SSR获取资源流程

11、参考资料:

vue官网

个人觉得,官方文档覆盖了整个Vue.js开发的方方面面。从其他地方找资料也基本上是从官网上面做延伸,学习Vue.js最好的地方就是官方文档。

12、实际项目中使用vue的好处

上一篇 下一篇

猜你喜欢

热点阅读