VUE
Vue知识点总结
Bliss_妍
这个作者很懒,什么都没留下…
展开
-
实现{{}}语法
const textReg = /\{\{\s*\w+\s*\}\}/gi; // 检测{{name}}语法若含有{{}}语法,我们则可以对其处理,由于一个文本节点可能出现多个{{}}语法,因此编译含有{{}}语法的文本节点主要有以下两步:找出该文本节点中所有依赖的属性,并且保留原始文本信息,根据原始文本信息还有属性值,生成最终的文本信息。比如说,原始文本信息是"test {{test}} {{name}}",那么该文本信息依赖的属性有this.data.test和this.data.name,那么原创 2020-09-14 09:43:17 · 869 阅读 · 0 评论 -
Vue中hash模式和history模式的区别
1 hash 模式下,仅 hash 符号之前的内容会被包含在请求中,如 http://www.abc.com,因此对于后端来说,即使没有做到对路由的全覆盖,也不会返回 404 错误。2 history 模式下,前端的 URL 必须和实际向后端发起请求的 URL 一致,如 http://www.abc.com/book/id。如果后端缺少对 /book/id 的路由处理,将返回 404 错误。Vue-Router 官网里如此描述:“不过这种模式要玩好,还需要后台配置支持……所以呢,你要在服务端增加一个覆盖原创 2020-08-28 10:08:06 · 628 阅读 · 0 评论 -
keep-alive内置组件的作用
可以让当前组件或者路由不经历创建和销毁,而是进行缓存,凡是被keep-alive组件包裹的组件,除了第一次以外。不会经历创建和销毁阶段的。第一次创建后就会缓存到缓存当中原创 2020-08-22 23:29:24 · 253 阅读 · 0 评论 -
Vue 组件中 data 为什么必须是函数?
在new Vue()中,data是可以作为一个对象进行操作的,然而在component中,data只能以函数的形式存在,不能直接将对象赋值给它。当data选项是一个函数的时候,每个实例可以维护一份被返回对象的独立的拷贝,这样各个实例中的data不会相互影响,是独立的。...原创 2020-08-22 22:57:08 · 373 阅读 · 0 评论 -
vue中 key 值的作用
使用key来给每个节点做一个唯一标识key的作用主要是为了高效的更新虚拟DOM。另外vue中在使用相同标签名元素的过渡切换时,也会使用到key属性,其目的也是为了让vue可以区分它们,否则vue只会替换其内部属性而不会触发过渡效果。...原创 2020-08-22 22:54:13 · 235 阅读 · 0 评论 -
vue 的双向绑定的原理
vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。具体实现过程: 首先要对数据进行劫持监听,所以需要设置一个监听器Observer,用来监听所有属性。如果属性发上变化了,就需要告诉订阅者Watcher看是否需要更新。因为订阅者是有很多个,所以我们需要有一个消息订阅器Dep来专门收集这些订阅者,然后在监听器Observer和订阅者Watcher之间进行统一管理的。接着,还需要有一个指令解析器Compile,对每个节点元素进行扫描和解析,将相关指令对应初始化成一个订阅者Watche..原创 2020-08-22 22:21:54 · 96 阅读 · 0 评论 -
Vue组件间通信的方式
三类通信:父子通信、兄弟通信、隔代通信1. props / $emit, 适用于父子间通信2. $refs / $parent / $children 适用于父子间通信3. $eventbus.$emit/$eventbus.$on适用于父子、隔代、兄弟4. $attrs / $listeners 适用于隔代通信$attrs包含了prop 以外的父级绑定,可以使用v-bind=“$attrs”传入内部组件,设置inheritAttrs为false,可以让未被注册的属性不被渲染....原创 2020-08-18 19:51:01 · 112 阅读 · 0 评论 -
Vuex
Vuex是一个专为Vue.js应用程序开发的状态管理模式。每一个Vuex应用的核心是store,它包含着大部分的state1. Vuex的存储是响应式的。store中改变,获取的地方也会改变。2.改变store的唯一方法就是显示地提交commit mutation主要包括以下几个模块:Store:定义了初始的数据结构,相当于dataGetter:允许组件从Store中获取数据Mutation: 改变store中值的唯一方法,必须是同步的Action:用于提交mutation,可以异步Mod原创 2020-08-18 19:50:21 · 117 阅读 · 0 评论 -
虚拟DOM
虚拟DOM就是为了解决浏览器性能问题而被设计出来的。若一次操作中有10次更新DOM的动作,虚拟DOM不会立即操作DOM,而是将这10次更新的diff内容保存到本地一个JS对象中,最终将这个JS对象一次性attch到DOM树上,再进行后续操作,避免大量无谓的计算量。所以,用JS对象模拟DOM节点的好处是,页面的更新可以先全部反映在JS对象(虚拟DOM)上,操作内存中的JS对象的速度显然要更快,等更新完成后,再将最终的JS对象映射成真实的DOM,交由浏览器去绘制。实现原理:1. 用JS对象模拟真实DOM树原创 2020-08-18 19:49:43 · 137 阅读 · 0 评论 -
Vue
1.v-show和v-if的区别v-if是真正的条件渲染,子组件会适当的被销毁和重建;v-show不管初始条件是什么,元素总是会被渲染,他利用CSS的display属性进行切换。因此v-if适用于运行时很少改变条件,不需要频繁切换条件的场景;v-show适用于需要频繁切换条件的场景。2.Vue的单向数据流所有的prop使父子prop之间形成了一个单向下行绑定,父级prop的更新会向下流动到子组件中,但是反过来不行。如果在子组件中更新prop的值,vue会在浏览器控制台中发出警告。子组件可以通过$原创 2020-08-16 10:38:45 · 157 阅读 · 0 评论