- 博客(42)
- 收藏
- 关注
原创 Vue模版编译原理
vue中的模板template无法被浏览器解析并渲染,因为这不属于浏览器的标准,不是正确的HTML语法,所有需要将template转化成一个JavaScript函数,这样浏览器就可以执行这一个函数并渲染出对应的HTML元素,就可以让视图跑起来了,这一个转化的过程,就成为模板编译。模板编译又分三个阶段,解析parse,优化optimize,生成generate,最终生成可执行函数render。
2023-01-28 18:15:09
351
原创 什么是 mixin ?
Mixin 使我们能够为 Vue 组件编写可插拔和可重用的功能。●如果希望在多个组件之间重用一组组件选项,例如生命周期 hook、 方法等,则可以将其编写为 mixin,并在组件中简单的引用它。
2023-01-28 18:14:18
227
原创 vue如何监听对象或者数组某个属性的变化
当在项目中直接设置数组的某一项的值,或者直接设置对象的某个属性值,这个时候,你会发现页面并没有更新。这是因为Object.defineProperty()限制,监听不到变化。
2023-01-28 18:14:10
4372
原创 delete和Vue.delete删除数组的区别
delete 只是被删除的元素变成了 empty/undefined 其他的元素的键值还是不变。●Vue.delete 直接删除了数组 改变了数组的键值。
2023-01-28 18:12:04
271
原创 assets和static的区别
相同点: assets 和 static 两个都是存放静态资源文件。项目中所需要的资源文件图片,字体图标,样式文件等都可以放在这两个文件下,这是相同点
2023-01-28 18:11:23
224
原创 对 React 和 Vue 的理解,它们的异同
相似之处:●都将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库;●都有自己的构建工具,能让你得到一个根据最佳实践设置的项目模板;●都使用了Virtual DOM(虚拟DOM)提高重绘性能;●都有props的概念,允许组件间的数据传递;●都鼓励组件化应用,将应用分拆成一个个功能明确的模块,提高复用性。
2023-01-28 18:09:50
201
原创 Vue是如何收集依赖的?
在初始化 Vue 的每个组件时,会对组件的 data 进行初始化,就会将由普通对象变成响应式对象,在这个过程中便会进行依赖收集的相关逻辑,如下所示∶
2023-01-28 18:08:57
779
1
原创 vue子组件可以直接改变父组件的数据吗?
子组件不可以直接改变父组件的数据。这样做主要是为了维护父子组件的单向数据流。每次父级组件发生更新时,子组件中所有的 prop 都将会刷新为最新的值。如果这样做了,Vue 会在浏览器的控制台中发出警告。
2023-01-28 18:03:01
1261
原创 data为什么是一个函数而不是对象
Vue组件可能存在多个实例,如果使用对象形式定义data,则会导致它们共用一个data对象,那么状态变更将会影响所有组件实例
2023-01-19 20:04:45
144
原创 v-model 是如何实现的,语法糖实际是什么?
作用在表单元素上动态绑定了 input 的 value 指向了 messgae 变量,并且在触发input 事件的时候去动态把 message设置为目标值:
2023-01-19 19:59:19
287
原创 v-if和v-show的区别
手段: v-if是动态的向DOM树内添加或者删除DOM元素:Vshow是通过设置DOM元素的display样式属性控制显隐;
2023-01-19 19:43:46
190
原创 v-if、v-show、v-html 的原理
v-if会调用addlfCondition方法,生成vnode的时候会忽略对应节点,render的时候就不会渲染
2023-01-19 19:42:12
489
2
原创 字符串的全排列
把一个字符串中的字符重新排列生成新的字符串,例如, abc 总共有6种排列 (abc, acb, bac, bca, cab, cba)。
2023-01-13 19:14:59
82
原创 defineProperty
ES5 提供了 Object.defineProperty 方法,该方法可以在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象。
2023-01-09 14:58:51
45
原创 广度优先遍历和深度优先遍历
深度优先遍历简称DFS(Depth First Search),广度优先遍历简称BFS(Breadth First Search),它们是遍历图的两种方式。
2023-01-09 10:04:10
287
原创 简述 mixin、extends 的覆盖逻辑
mixin 和 extends均是用于合并、拓展组件的,两者均通过 mergeOptions 方法实现合并。
2023-01-06 21:50:05
382
原创 Vue.js 和 React.js 有什么区别
React.js 和 Vue.js 确实有一些相似——它们都提供数据驱动、可组合搭建的视图组件。然而,它们的内部实现是完全不同的。React 是基于 Virtual DOM——一种在内存中描述 DOM 树状态的数据结构。React 中的数据通常被看作是不可变的,
2023-01-06 21:46:38
676
原创 过滤器的作用,如何实现一个过滤器
根据过滤器的名称,过滤器是用来过滤数据的,在Vue中使用filters来过滤数据,filters不会修改数据,而是过滤数据,改变用户看到的输出(计算属性 computed ,方法 methods 都是通过修改数据来处理数据格式的输出显示)。
2023-01-06 21:38:52
158
原创 Computed 和 Watch 的区别
对于Computed:它支持缓存,只有依赖的数据发生了变化,才会重新计算不支持异步,当Computed中有异步操作时,无法监听数据的变化computed的值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data声明过,或者父组件传递过来的props中的数据进行计算的。
2023-01-06 21:36:24
59
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人