您当前的位置: 首页 >  vue.js

dawn

暂无认证

  • 7浏览

    0关注

    204博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Vue.js(2):简单理解Vue

dawn 发布时间:2021-09-27 13:30:25 ,浏览量:7

  1、框架是为了解决开发的复杂度,Vue框架就是为了简化模板渲染、事件绑定和用户交互等问题而产生的。

  Vue是MVVM模型,即视图(View)-视图模型(ViewModel)-模型(Model)。

  有了Vue的ViewModel,数据以及与数据相关的界面是联动的,中间的桥梁就是ViewModel。

  2、当创建一个新的Vue实例时【new Vue()】时,()括号内传递的是一个包含了数据、模板、挂载元素、方法、生命周期钩子等的对象,这些都被添加到Vue的响应系统中。

  响应式系统,即可以通过修改属性的值来让视图发生变化(更新渲染)。

  3、V2.0是通过object.defineproperty来完成数据响应式的(缺点是无法感知新增对象或者新增的属性)。

  Object.defineProperty(obj, prop, descriptor)

  obj:需要定义属性的对象

  prop:需要定义的属性

  descriptor:属性的描述描述符

  返回值:返回此对象

  ①、利用Object.defineProperty将对象的属性转化成getter/setter,以便拦截对象赋值与取值操作,称之为Observer;

  ②、解析DOM提取其中的指令与占位符并赋与不同的操作,称之为Compiler;

  ③、将Compile的解析结果与Observer中的对象建立关联,Observer监听到象数据变化,接收通知并更新DOM,称之为Watcher;

  ④、建立一个公共对象入口以便接收配置和协调三者,这就是Vue。

V3.0是通过class proxy来完成数据响应式的。

  4、VUE中有很多以$开头和以_(下划线)的属性,其中以$开头可以让开发者使用,以_下划线开头的为内置的,不建议开发者使用。

  5、为了提高渲染效率,Vue会把模板编译成虚拟DOM树(虚拟DOM树一定是单根的),然后在生产真实的DOM树。

  当数据更改时,将重新编译成虚拟DOM树,然后对比前后两棵虚拟DOM树,仅仅将差异部分反映到真实的DOM中,这样可以最小程度地改动真实DOM,提高页面的渲染效率。

  对比的算法是diff算法。

  vue有三种方式生产虚拟DOM树:

  ①、在加载元素内部写,即将outerHTML作为模板;

  ②、在template中写;

  ③、在render中用函数直接创建虚拟节点树。

  上面从上到下优先级逐渐提升。

  6、VUE注入(也就是挂载和绑定)是为了绑定this和数据响应,也可以完成所有设置后再挂载,vm.$mount(“#demo”);

  数据冻结(设置数据对象为保护)必须在挂载之前,挂载完毕后再进行数据冻结无效。

  7、前端开发框架有很多,可以组合使用,以目前开发来看,肯定要熟练几种才好开展项目,Vue.js比较流行,与其他框架结合也很好。

  8、Vue的生命周期图

   可以在代码中体会Vue的生命周期图(加想看的事件函数处理):




    
    
    
    Vue.js的基本语法
    


    
{{message}}
//去掉警告 Vue.config.productionTip=false; var FixedObj={ message:'hello,Vue!', NowTime:new Date() }; var methods={ change(){ this.message='hello VsCode!' }, } //数据冻结指令必须在挂载之前执行,一旦绑定再执行该指令则失效 //Object.freeze(FixedObj); var vm=new Vue({ el:"#demo",//挂载即绑定 data:FixedObj, methods, created:function(){ console.log('初始化后:'+this.message+" 时间:"+this.NowTime) }, mounted:function(){ console.log('绑定后:'+this.message+" 时间:"+this.NowTime) }, updated:function(){ console.log('修改后:'+this.message+" 时间:"+this.NowTime) } })

关注
打赏
1664252102
查看更多评论
立即登录/注册

微信扫码登录

0.3232s