美文网首页
Vue的相关知识点

Vue的相关知识点

作者: 我向你奔 | 来源:发表于2018-03-12 21:05 被阅读78次

双向数据绑定原理

DOM是数据的一种自然映射



这里的ViewModel是一个vue实例,如果没有ViewModel我们的DOM跟数据怎么交互呢?



Vue是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter。在数据变动时发布消息给订阅者,发出相应的监听回调,达到监听数据变动的目的。

Object.defineProperty ():

语法: Object.defineProperty(obj, prop, descriptor)
参数:
obj: 操作对象
prop: 需要操作的属性名称
descriptor: 属性具有的特性
返回值: 传入的对象, 即第一个参数obj
针对特性描述存在两种形式: 数据描述和存取器描述

Object.defineProperty 是ES5中一个无法shim的特性,这也就是为什么Vue不支持IE8以及更低版本浏览器的原因。
shim特性:指把一个库引入一个旧的浏览器, 然后用旧的API, 实现一些新的API的功能

现在有一份数据a.b,在一个vue对象实例化过程中,会给a.b这份数据通过es5 Object.defineproperty属性添加了一个getter和setter,同时vuejs会对模块做编译,解析生成一个指令对象,在这里就是一个v-text指令,每一个指令对象都会关联一个watcher,但我们对指令对应的表达式a.b求值的时候就会触发它的getter,这里我们就会把依赖生成到watcher里。当我们再次改变a.b的值时,就会触发它的setter,会通知到对应关联的watcher里,watcher就会再次对a.b求值,计算对比新旧值,当发现值改变了,watcher就会通知到指令,调用指令的update方法,由于指令是对DOM的封装,所以它就会调用原生DOM的方法去更新视图,这样我们就完成了数据改变到视图更新的自动过程。

组件化

组件化的目的是拓展HTML元素,封装可重用的代码


组件设计原则:
页面上每个独立的可视/可交互区域视为一个组件;
每个组件对应一个工程目录,组件所需要的各种资源在这个目录下就近维护;
页面不过是组件的容器,组件可以嵌套自由组合形成完整的页面;

jQuery与Vue的区别

  1. jQuery首先要获取到dom对象,然后对dom对象进行进行值的修改等操作。
  2. Vue是首先把值和js对象进行绑定,然后修改js对象的值,Vue框架就会自动把dom的值就行更新。
  3. 可以简单的理解为Vue帮我们做了dom操作,我们以后用Vue就需要修改对象的值和做好元素和对象的绑定,Vue这个框架就会自动帮我们做好dom的相关操作。
  4. 这种dom元素跟随JS对象值的变化而变化叫做单向数据绑定,如果JS对象的值也跟随着dom元素的值的变化而变化就叫做双向数据绑定。

在vue中获取dom

mounted(){ //这里必须是 mouted 钩子
  this.title = document.querySelector('#footer-box-title');
  this.title.style.color = "#ff0000";
}

要在mounted中使用,因为只有在执行 mounted 的时候,vue已经渲染了dom节点,这个时候是可以获取dom节点的,也可以使用ref属性获取

<button ref="btn">获取ref</button>
this.$ref.btn.style.backgroundColor="#ff0000"

相关文章

  • Plan

    一:Plan On Work:知识点 1、vue(MVVM、vue原理、使用中遇到的问题、相关插件、环境搭建) 2...

  • vue学习(31)脚手架使用

    知识点 1:vue脚手架隐藏了webpack的相关配置,想看配置:vue inspect > output.js2...

  • VUE相关知识点

    VUE相关知识点vue是一个用于构建用户界面的框架,采用MVVM模式(model-view-viewmodel),...

  • vue仿cnode社区

    一、为什么要仿cnode社区? 需要练习vue的相关知识点,比如计算属性、事件绑定、vue-router路由的跳转...

  • 无标题文章

    1.这个月复习了VUE 的相关知识点 然后将之前不是太懂的知识点补了起来 Vue是国人开发的一款前端框架,他是利用...

  • vue相关知识点

    1 什么是mvvm模式 mvvm是Model-View-ViewModel缩写,是一种设计思想,model代表...

  • Vue相关知识点

    1、vue父子组件之间的通信 在vue组件通信中其中最常见通信方式就是父子组件之中的通性,而父子组件的设定方式在不...

  • vue相关知识点

    1.vue有哪些优点? 答:轻量级框架:只关注视图层,是一个构建数据的视图集合,大小只有几十kb;简单易学:国人开...

  • vue 相关知识点

    侦听器初始化深度监听 全局监听事件 也可实现兄弟组件通讯 如果页面显示的数据为对象时如何判断是否有数据 父组件...

  • vue相关知识点

    组件中的 data 为什么是函数 组件是用来复用的,组件中的data应是互不影响的,防止data复用。 v-if和...

网友评论

      本文标题:Vue的相关知识点

      本文链接:https://www.haomeiwen.com/subject/ialnfftx.html