vue.js的简单总结

这篇文章主要对vue的理解进行总结:javascript

参考来源:http://blog.csdn.net/generon/article/details/72482844vue

vue.js是一套构建用户界面的渐进式框架,它的核心库只关注视图层。它相比之其它的框架来讲要更加的轻便,易于上手,相对与大部分的框架在性能方面要好一些。java

不过也有不足的地方:好比不能支持IE8及如下的IE版本。webpack

Vue.js的特性以下:web

  1.轻量级的框架算法

  2.双向数据绑定app

  3.指令框架

  4.插件化函数

 

Vue目前的的开发模式主要有两种:
1.直接页面级的开发,script直接引入Vue
2.工程性开发,webpack+loader或者直接使用脚手架工具Vue-cli,里面的文件都配置好了工具

webpack能够进行配置,配置多文件入口,进行多页面开发

 

渲染流程大概分如下几个步骤:

  1. new Vue,执行初始化
  2. 挂载$mount方法,经过自定义Render方法、template、el等生成Render函数
  3. 经过Watcher监听数据的变化
  4. 当数据发生变化时,Render函数执行生成VNode对象
  5. 经过patch方法,对比新旧VNode对象,经过DOM Diff算法,添加、修改、删除真正的DOM元素

下面说一说vue的渲染模式有三种:

一、自定义的render函数

1.Vue.component('anchored-heading', {
2.    render: function (createElement) {
3.        return createElement(
4.            'h' + this.level,   // tag name 标签名称
5.            this.$slots.default // 子组件中的阵列
6.        )
7.    },
8.    props: {
9.        level: {
10.            type: Number,
11.            required: true
12.        }
13.    }
14.})

  

二、 template写法

1.var vm = new Vue({
2.    data: {
3.        // 以一个空值声明 `msg`
4.        msg: ''
5.    },
6.    template: '<div>{{msg}}</div>'
7.})

  

三、el写法

1.var app = new Vue({
2.    el: '#app',
3.    data: {
4.        message: 'Hello Vue!'
5.    }
6.})

这三种渲染模式最终都是要获得Render函数。只不过用户自定义的Render函数省去了程序分析的过程,等同于处理过的Render函数,而普通的template或者el只是字符串,须要解析成AST,再将AST转化为Render函数。

记住一点,不管哪一种方法,都要获得Render函数。

咱们在使用过程当中具体要使用哪一种调用方式,要根据具体的需求来。

  • 若是是比较简单的逻辑,使用template和el比较好,由于这两种都属于声明式渲染,对用户理解比较容易,但灵活性比较差,由于最终生成的Render函数是由程序经过AST解析优化获得的;

  • 而使用自定义Render函数至关于人已经将逻辑翻译给程序,可以胜任复杂的逻辑,灵活性高,但对于用户的理解相对差点。 

生命周期:

beforeCreate(建立前)

created(建立后)

beforeMount(载入前)

mounted(载入后)

beforeUpdate(更新前)

updated(更新后)

beforeDestroy(销毁前)

destroyed(销毁后)

相关文章
相关标签/搜索