Vue-思想

1 .Vue是基于DOM的模板,每个Vue实例都关联着一个相应的dom元素,当一个Vue实例被创建时,他会递归根元素所有的子节点,完成必要的数据绑定,当这个视图被编译后,他就会自动完成相应的数据变化,选这个模板的大小是会影响性能的,只是保留一个new Vue()还是分成许多小的呢?
2 .使用vue的时候,除了自定义指令,几乎不需要操作dom,当数据发生变化的时候,视图会自动触发更新,也就是说所有的视图改变都是依靠数据指导
3 .Vue构造函数

1.每一次初始化Vue实例,都需要传递一个选项对象,每一个Vue实例本质上就是一个View Model,他有以下东西。
2.vm.$el:每一个实例都有一个dom节点,一旦在实例化中提供el选项,vue实例就会立即进入编译阶段。vue会递归遍历模板中的dom节点并且手机其中的指令,将数据和这些指令所对应的dom节点连接起来,一旦连接完毕,这些dom节点就算正式被Vue实例接管了。
3.vm.$data:每一个实例都有一个数据对象,数据对象并不一定只能被一个Vue实例观察,可以多个Vm实例观察同一个对象,当多个组件需要共享一些全局状态时,这个特性非常有用(Vuex原理?)

4 .watch和computed都是以Vue的依赖追踪机制为基础,当某一个依赖数据发生改变,所有依赖这个数据的“相关”的“数据”发生改变,也就是自动调用相关的函数实现变动

1.computed:具有缓存,计算属性基于他们特性的依赖进行缓存,只有在他的相关依赖发生改变才会重新求值。和数据类型是同一类型,获取这个值的方法,使用方法,不要把它当成一个函数调用,和看成是一个函数。
2.watch:观察一个特定的值,当该值发生变化时执行特定的函数。监听机制和事件机制,当这个数据改变这个特殊事件被观察到,那么它对应的函数相当于怎么处理。

5 .虚拟dom

1.原理:他通过js对象模拟原生的Dom,加上DOM diff极大地的提升了dom操作的性能。
2.意义:抽象。对dom层进行了一层抽象。也就是说Virtual可以在下一次编译成dom的时候。顺便编译成window,mac对应的ui组件
3.思想:用js表示dom结构,包括标签,属性和子节点。那不就是页面渲染之前的那一部分么?回退了一部分。根据虚拟dom节点的属性和子节点递归的构建出真实的dom树,当页面发生状态改变需要操作dom的时候,我们可以先通过虚拟dom计算产生真实的最小修改量,然后修改真实的dom结构,深度优先遍历的过程产生了用于记录两棵树之间差异的数据结构
  1. 组件化
    7 .代码规范
    8 .for循环
    9 .生命周期函数:

     1.beforeCreate:添加loading函数。一般都是以数据为标识决定loading函数
     2.created:创建实例之后同步调用。data可以使用,函数自执行,数据观测,属性和方法运算,watch、event事件回调。加载ajax和使用数据
     3.beforeMount:el找到vertiual dom先把位置占住,render函数首次使用,完成了el和data的初始化
     4.Mount:把值渲染到页面里面,el被替换成html,完成挂载
     5.beforeUpdate:数据更新时调用,发生在虚拟dom重新渲染和打补丁之前
     6.beforeDestory:销毁前状态
     7.activated: keep-alive组件激活时调用
     8.deactivated: keep-alive组件被停用时调用
    

10 .data:Vue实例的数据对象,Vue会递归的将data的属性转换为getter、setter,从而让data的属性能够响应数据变化
11 .el:提供的元素只能作为挂载点,所有挂载元素都会被Vue生成dom树替换,因此不推荐挂载root实例到html,body上面

你可能感兴趣的:(Vue-思想)