随笔分类 - vue源码系列
摘要:### 插槽的分类 插槽分为默认插槽、具名插槽、作用域插槽 需要注意的点是,使用作用域插槽需要搭配`template`使用 ### 默认插槽 默认插槽使用最为简单: 父级 ``` 我是默认插槽 ``` 子级 ``` 我是子组件默认的 ``` 展示:  解决方法:在data中定义一个为空的属性 2. vue不能对对象属性的增删进行监听 解决方法:使用delete 3. vue不能监听使用下标直接对数组内元素的直接改变,并且不能监听到对数组长度的改变 解决方
阅读全文
摘要:###vue中路由传递参数 ####push传递参数(注意使用params的时候不能使用path跳转路由,只能使用name) 传递params参数 传递的写法: this.$router.push({ name: '', //在配置路由时填写的name params: {参数} }) 或者:this
阅读全文
摘要:首先介绍一下过滤器的使用,过滤器是来用格式化文本的,它可以用在两个地方:双花括号和v-bind表达式。: <!-- 双花括号 --!> {{ message | capitalize}} <!-- 在v-bind中--!> <div v-bind:id = 'rawId | formatId'></
阅读全文
摘要:首先把官网的图扒下来,然后主要也是按照这个逻辑走。 ###生命周期图示解读 ####初始化阶段 new Vue()到created之间的阶段叫做初始化阶段。 这个阶段主要在Vue实例上初始化一下属性、事件以及响应式数据,如props、methods等。 注意:beforeCreate阶段,data,
阅读全文
摘要:全局API和实例方法不同,后者是在Vue的原型上挂载方法,也就是在Vue.prototype上挂载方法,而前者是直接在Vue上挂载方法。示例: vue.extend = function(extendOption) { ... } ###Vue.extend 参数:Vue.extend({}) 用法
阅读全文
摘要:我丢,我这个居然忘了写,要不是重新看我的面经的话差点就忘了。啧啧啧,补上。(我发现我之前理解的nextick有点毛病,重新去看了一下技术博客和书总结了一下。 ###什么是异步渲染 对于上面的代码,首先假如是直接去渲染的话肯定是要渲染两次:第一次渲染,然后变成第二次渲染。这样的话就会造成性能浪费,因为
阅读全文
摘要:我之前写了一半了,居然又没见了就离谱,从头开始。 ###vue-router原理 vue-router是实现了前端路由,也就是URL和UI之间的映射关系,当URL改变时会引起UI更新,但无需刷新页面。那么如何实现前端路由呢,也就是如何解决这两个问题: 如何改变URL但是页面不进行刷新 如何知道URL
阅读全文
摘要:###为什么数组和对象的侦测方式不同? 可能很多人不理解为什么Array的侦测方式和Object的不同,举例说明: this.list.push(1) 如上,我们是使用push方法向list中新增了数字1。之前介绍Object的时候,其侦测方式是通过getter/setter实现的,但是数组是通过使
阅读全文
摘要:
###如何追踪变化 在js中,有两种方法可以侦测到数据的变化:Object.defineProperty和Es6的Proxy。这里讨论的是vue2的响应式原理,所以就说Object.defineProperty,在vue3中使用的是Proxy,还没有开始看呢。 那么Object.defineProp
阅读全文

摘要:###虚拟DOM简介 首先,什么是虚拟DOM?虚拟DOM就是一个JS对象来描述一个DOM节点,像如下示例: <div class="a" id="b">我是内容</div> { tag:'div', // 元素标签 attrs:{ // 属性 class:'a', id:'b' }, text:'我
阅读全文
摘要:###概述 vue是数据驱动页面,数据即状态的变化,页面即状态的变化导致页面的变化,也就是说可以用公式表示:UI=render(state)。UI和state都是用户设置的,都是可变的,不变的只有render(),所以vue起的就是render()的作用。 那么render有什么作用呢?即监听sta
阅读全文