vue
文章平均质量分 63
素燃
忙里偷闲,发现有意思的东i就写点
展开
-
element-plus 一键动态换任何皮肤功能
plus 官方代码给的思路但是你发现这样做之后,只是表面上换了个皮肤,像其它的操作,比如按钮hover,disabled 等的状态还是默认的颜色,就让你很不爽!原创 2023-11-25 20:52:45 · 663 阅读 · 0 评论 -
Vue源码系列-6- computed计算属性的实现原理
计算属性默认是有缓存的,内部实现参考源码src/core/instance/state.js调用initComputed() 方法,创建 watcher/** * 初始化 computed * @param {*} vm * @param {*} computed */function initComputed (vm: Component, computed: Object...原创 2020-03-30 10:07:16 · 361 阅读 · 0 评论 -
Vue源码系列-5- Vue.set() 使用场景以及实现原理?
官方api解释了它的使用场景向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = ‘hi’)所以我们要知道,只有先定义在data 里 数据才具有响应式,如果自己后添加的属性是不具备响应式的比如下边这个 属性a 具有响应式,但是b ...原创 2020-03-29 00:29:18 · 686 阅读 · 0 评论 -
Vue源码系列-4- Vue为什么采用异步渲染以及原理
为什么采用异步渲染?因为如果不采用异步更新,那么每次更新数据都会对当前组件进行重新渲染, 这样就会可能进行大量的dom重流或者重绘,所以为了性能考虑,减少浏览器在Vue每次更新数据后会出现的Dom开销,Vue 会在本轮数据更新后,再去异步更新视图!src/core/observer/index.js在 defineReactive() 这个方法中定义setter 的时候 有个 dep....原创 2020-03-28 23:33:51 · 1169 阅读 · 0 评论 -
Vue源码之旅-3- nextTick()实现原理
参考文档的 异步更新队列, 从官方文档的说明, 我们可以看出, Vue 的更新是组件级的,这么做的目的就是为了提升性能, 它内部怎么做的也比较好理解, 其实就是利用了 微任务 和 宏任务src/core/util/env.jsexport const nextTick = (function () { const callbacks = [] let pending = false...原创 2020-03-28 21:59:44 · 572 阅读 · 0 评论 -
vue源码之旅-2 - 数据响应式原理的实现
在官方文档的深入响应式原理这一节可以看到,Vue是通过Object.defineProperty 来定义数据的响应式的, 接着从源码层面来喵一眼到底是怎么做的?src/core/instance/state.js我简单注视了一下源码/** * 1. 调用initData()方法, 初始化用户传入的 data * @param {*} vm */function initData ...原创 2020-03-28 20:55:37 · 261 阅读 · 0 评论 -
vue源码之旅-1- new Vue( ) 做了什么事?
源码目录: 源码:src / core /instance / index.jsimport { initMixin } from './init'import { stateMixin } from './state'import { renderMixin } from './render'import { eventsMixin } from './ev...原创 2020-03-27 13:10:13 · 180 阅读 · 0 评论 -
vue 递归菜单树
做一个后台管理系统, 很多时候是不会只有一两层这种定死的数据结构的, 往往,我们不知道它会有多少层数据, 这就需要我们来递归渲染, 而再react中我们递归个菜单就比较方便, 跟平时写递归函数差不多, 而在vue中,我们就需要递归组件了,那vue中问么递归组件呢, 其实就是依靠 组件中的name属性,这个name的值,就是当前组件自身,举个例子,<template> &...原创 2019-12-06 18:07:08 · 1716 阅读 · 0 评论