11 2022 档案

摘要:Vue 修饰符有哪些 事件修饰符 .stop 阻止事件继续传播 .prevent 阻止标签默认行为 .capture 使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理 .self 只当在 event.target 是当前元素自身时触发处理函数 .once 事件将只会触发 阅读全文
posted @ 2022-11-18 09:38 bb_xiaxia1998 阅读(24) 评论(0) 推荐(0) 编辑
摘要:前言 有时候有些面试中经常会问到v-for与v-if谁的优先级高,这里就通过分析源码去解答一下这个问题。 下面的内容是在 当我们谈及v-model,我们在讨论什么?的基础上分析的,所以阅读下面内容之前可先看这篇文章。 继续从编译出发 以下面的例子出发分析: new Vue({ el:'#app', 阅读全文
posted @ 2022-11-18 09:36 bb_xiaxia1998 阅读(47) 评论(0) 推荐(0) 编辑
摘要:Vue2.x 响应式数据原理 整体思路是数据劫持+观察者模式 对象内部通过 defineReactive 方法,使用 Object.defineProperty 来劫持各个属性的 setter、getter(只会劫持已经存在的属性),数组则是通过重写数组7个方法来实现。当页面使用对应属性时,每个属性 阅读全文
posted @ 2022-11-18 09:35 bb_xiaxia1998 阅读(52) 评论(0) 推荐(0) 编辑
摘要:前言 在Vue组件库开发过程中,Vue组件之间的通信一直是一个重要的话题,虽然官方推出的 Vuex 状态管理方案可以很好的解决组件之间的通信问题,但是在组件库内部使用 Vuex 往往会比较重,本文将系统的罗列出几种不使用 Vuex,比较实用的组件间的通信方式,供大家参考。 组件之间通信的场景 在进入 阅读全文
posted @ 2022-11-18 09:33 bb_xiaxia1998 阅读(38) 评论(0) 推荐(0) 编辑
摘要:Vue-router 路由模式有几种 vue-router 有 3 种路由模式:hash、history、abstract,对应的源码如下所示 switch (mode) { case 'history': this.history = new HTML5History(this, options. 阅读全文
posted @ 2022-11-16 08:31 bb_xiaxia1998 阅读(23) 评论(0) 推荐(0) 编辑
摘要:一、computed介绍 computed 用来监控自己定义的变量,该变量在 data 内没有声明,直接在 computed 里面定义,页面上可直接使用。 //基础使用 {{msg}} <input v-model="name" /> //计算属性 computed:{ msg:function() 阅读全文
posted @ 2022-11-16 08:30 bb_xiaxia1998 阅读(24) 评论(0) 推荐(0) 编辑
摘要:v-for 为什么要加 key 如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。key 是为 Vue 中 vnode 的唯一标记,通过这个 key,我们的 diff 操作可以更准确、更快速 更准确:因为带 key 就不是就地复用了,在 sa 阅读全文
posted @ 2022-11-16 08:29 bb_xiaxia1998 阅读(36) 评论(0) 推荐(0) 编辑
摘要:Vue加载流程 1.初始化的第一阶段是Vue实例也就是vm对象创建前后:首先Vue进行生命周期,事件初始化发生在beforeCreate生命周期函数前,然后进行数据监测和数据代理的初始化,也就是创建vm对象的过程,当vm对象创建完成就可以通过vm对象访问到劫持的数据,比如data中的数据,metho 阅读全文
posted @ 2022-11-16 08:27 bb_xiaxia1998 阅读(18) 评论(0) 推荐(0) 编辑
摘要:Vue3有了解过吗?能说说跟vue2的区别吗? 1. 哪些变化 从上图中,我们可以概览Vue3的新特性,如下: 速度更快 体积减少 更易维护 更接近原生 更易使用 1.1 速度更快 vue3相比vue2 重写了虚拟Dom实现 编译模板的优化 更高效的组件初始化 undate性能提高1.3~2倍 SS 阅读全文
posted @ 2022-11-15 08:58 bb_xiaxia1998 阅读(44) 评论(0) 推荐(0) 编辑
摘要:一、Vue3 与 Vue2 区别详述 1. 生命周期 对于生命周期来说,整体上变化不大,只是大部分生命周期钩子名称上 + “on”,功能上是类似的。不过有一点需要注意,Vue3 在组合式API(Composition API,下面展开)中使用生命周期钩子时需要先引入,而 Vue2 在选项API(Op 阅读全文
posted @ 2022-11-15 08:57 bb_xiaxia1998 阅读(206) 评论(0) 推荐(0) 编辑
摘要:写过自定义指令吗 原理是什么 指令本质上是装饰器,是 vue 对 HTML 元素的扩展,给 HTML 元素增加自定义功能。vue 编译 DOM 时,会找到指令对象,执行指令的相关方法。 自定义指令有五个生命周期(也叫钩子函数),分别是 bind、inserted、update、componentUp 阅读全文
posted @ 2022-11-15 08:56 bb_xiaxia1998 阅读(101) 评论(0) 推荐(0) 编辑
摘要:原理性的东西就会文字较多,请耐下心来,细细品味 Vue中DOM更新机制 当你气势汹汹地使用Vue大展宏图的时候,突然发现,咦,我明明对这个数据进行更改了,但是当我获取它的时候怎么是上一次的值(本人比较懒,就不具体举例了👵) 此时,Vue就会说:“小样,这你就不懂了吧,我的DOM是异步更新的呀!!! 阅读全文
posted @ 2022-11-15 08:55 bb_xiaxia1998 阅读(9) 评论(0) 推荐(0) 编辑
摘要:Vue项目性能优化-详细 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM;但 Vue 项目中仍然存在项目首屏优化、Webpack 编译配置优化等问题,所以我们仍然需要去关注 Vu 阅读全文
posted @ 2022-11-14 10:09 bb_xiaxia1998 阅读(73) 评论(0) 推荐(0) 编辑
摘要:引言 在这里我先提出两个问题(文章末尾会进行解答): 在Vue的数据响应系统中,Dep和Watcher各自分担什么任务? Vue的数据响应系统的核心是Object.defineproperty一定是最好的吗?有什么弊端和漏洞吗? 一、什么是响应系统中的Watcher,它的作用是什么? 响应系统中的W 阅读全文
posted @ 2022-11-14 10:08 bb_xiaxia1998 阅读(85) 评论(0) 推荐(0) 编辑
摘要:keep-alive 使用场景和原理 keep-alive 是 Vue 内置的一个组件,可以实现组件缓存,当组件切换时不会对当前组件进行卸载。 常用的两个属性 include/exclude,允许组件有条件的进行缓存。 两个生命周期 activated/deactivated,用来得知当前组件是否处 阅读全文
posted @ 2022-11-14 10:07 bb_xiaxia1998 阅读(163) 评论(0) 推荐(0) 编辑
摘要:什么是 keep-alive 在平常开发中,有部分组件没有必要多次初始化,这时,我们需要将组件进行持久化,使组件的状态维持不变,在下一次展示时,也不会进行重新初始化组件。 也就是说,keepalive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染 。也就是所谓的组件缓存 < 阅读全文
posted @ 2022-11-14 10:05 bb_xiaxia1998 阅读(39) 评论(0) 推荐(0) 编辑
摘要:computed和watch有什么区别? computed: computed是计算属性,也就是计算值,它更多用于计算值的场景 computed具有缓存性,computed的值在getter执行后是会缓存的,只有在它依赖的属性值改变之后,下一次获取computed的值时才会重新调用对应的getter 阅读全文
posted @ 2022-11-10 08:12 bb_xiaxia1998 阅读(31) 评论(0) 推荐(0) 编辑
摘要:组件化是 Vue, React 等这些框架的一个核心思想,通过把页面拆成一个个高内聚、低耦合的组件,可以极大程度提高我们的代码复用度,同时也使得项目更加易于维护。所以,本文就来分析下组件的渲染流程。我们通过下面这个例子来进行分析: <div id="demo"> <comp></comp> </di 阅读全文
posted @ 2022-11-10 08:10 bb_xiaxia1998 阅读(25) 评论(0) 推荐(0) 编辑
摘要:谈谈Vue和React组件化的思想 1.我们在各个页面开发的时候,会产生很多重复的功能,比如element中的xxxx。像这种纯粹非页面的UI,便成为我们常用的UI组件,最初的前端组件也就仅仅指的是UI组件 2.随着业务逻辑变得越来多是,我们就想要我们的组件可以处理很多事,这就是我们常说的组件化,这 阅读全文
posted @ 2022-11-10 08:09 bb_xiaxia1998 阅读(32) 评论(0) 推荐(0) 编辑
摘要:Vue 视图更新原理 Vue 的视图更新原理主要涉及的是响应式相关API Object.defineProperty 的使用,它的作用是为对象的某个属性对外提供 get、set 方法,从而实现外部对该属性的读和写操作时能够被内部监听,实现后续的同步视图更新功能 一、实现响应式的核心API:Objec 阅读全文
posted @ 2022-11-10 08:07 bb_xiaxia1998 阅读(7) 评论(0) 推荐(0) 编辑
摘要:Vue3有了解过吗?能说说跟vue2的区别吗? 1. 哪些变化 从上图中,我们可以概览Vue3的新特性,如下: 速度更快 体积减少 更易维护 更接近原生 更易使用 1.1 速度更快 vue3相比vue2 重写了虚拟Dom实现 编译模板的优化 更高效的组件初始化 undate性能提高1.3~2倍 SS 阅读全文
posted @ 2022-11-09 10:13 bb_xiaxia1998 阅读(97) 评论(0) 推荐(0) 编辑
摘要:什么是数据劫持? 定义: 数据劫持,指的是在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果。 简单地说,就是当我们 触发函数的时候 动一些手脚做点我们自己想做的事情,也就是所谓的 "劫持"操作 数据劫持的两种方案: Object.defineProperty 阅读全文
posted @ 2022-11-09 10:11 bb_xiaxia1998 阅读(60) 评论(0) 推荐(0) 编辑
摘要:Vue组件渲染和更新过程 渲染组件时,会通过 Vue.extend 方法构建子组件的构造函数,并进行实例化。最终手动调用$mount() 进行挂载。更新组件时会进行 patchVnode 流程,核心就是diff算法 如何在组件中批量使用Vuex的getter属性 使用mapGetters辅助函数, 阅读全文
posted @ 2022-11-09 10:10 bb_xiaxia1998 阅读(22) 评论(0) 推荐(0) 编辑
摘要:最近面试总是会被问到这么一个问题:在使用vue的时候,将for循环中声明的变量i从1增加到100,然后将i展示到页面上,页面上的i是从1跳到100,还是会怎样?答案当然是只会显示100,并不会有跳转的过程。 怎么可以让页面上有从1到100显示的过程呢,就是用setTimeout或者Promise.t 阅读全文
posted @ 2022-11-09 10:08 bb_xiaxia1998 阅读(16) 评论(0) 推荐(0) 编辑
摘要:背景 看了一些自定义指令的文章,但是探究其原理的文章却不多见,所以我决定水一篇。 如何自定义指令? 其实关于这个问题官方文档上已经有了很好的示例的,我们先来温故一下。 除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令。注意,在 Vue2.0 中,代码复用 阅读全文
posted @ 2022-11-08 14:09 bb_xiaxia1998 阅读(34) 评论(0) 推荐(0) 编辑
摘要:一般在哪个生命周期请求异步数据 我们可以在钩子函数 created、beforeMount、mounted 中进行调用,因为在这三个钩子函数中,data 已经创建,可以将服务端端返回的数据进行赋值。 ​ 推荐在 created 钩子函数中调用异步请求,因为在 created 钩子函数中调用异步请求有 阅读全文
posted @ 2022-11-08 14:08 bb_xiaxia1998 阅读(52) 评论(0) 推荐(0) 编辑
摘要:写在前面 在前端中,主要涉及的基本上就是 DOM的相关操作 和 JS,我们都知道 DOM 操作是比较耗时的,那么在我们写前端相关代码的时候,如何减少不必要的 DOM 操作便成了前端优化的重要内容。 虚拟DOM(virtual DOM) 在 jQuery 时代,基本上所有的 DOM 相关的操作都是由我 阅读全文
posted @ 2022-11-08 14:07 bb_xiaxia1998 阅读(47) 评论(0) 推荐(0) 编辑
摘要:params和query的区别 用法:query要用path来引入,params要用name来引入,接收参数都是类似的,分别是 this.$route.query.name 和 this.$route.params.name 。 url地址显示:query更加类似于ajax中get传参,params 阅读全文
posted @ 2022-11-08 09:49 bb_xiaxia1998 阅读(113) 评论(0) 推荐(0) 编辑
摘要:一、简介 vue几个核心思想: 数据驱动 组件化 虚拟dom、diff局部最优更新 源码目录介绍 Vue.js 的源码在 src 目录下,其目录结构如下。 src ├── compiler # 编译相关 ├── core # 核心代码 ├── platforms # 不同平台的支持 ├── serv 阅读全文
posted @ 2022-11-08 09:46 bb_xiaxia1998 阅读(27) 评论(0) 推荐(0) 编辑
摘要:为什么要使用异步组件 节省打包出的结果,异步组件分开打包,采用jsonp的方式进行加载,有效解决文件过大的问题。 核心就是包组件定义变成一个函数,依赖import() 语法,可以实现文件的分割加载。 components:{ AddCustomerSchedule:(resolve)=>import 阅读全文
posted @ 2022-11-08 09:45 bb_xiaxia1998 阅读(16) 评论(0) 推荐(0) 编辑
摘要:我们在开发Vue项目时候都知道,在vue开发中某些问题如果前期忽略掉,当时不会出现明显的效果,但是越向后开发越难做,而且项目做久了就会出现问题,这就是所说的蝴蝶效应,这样后期的维护成本会非常高,并且项目上线后还会影响用户体验,也会出现加载慢等一系列的性能问题,下面举一个简单的例子。 举个简单的例子 阅读全文
posted @ 2022-11-08 09:42 bb_xiaxia1998 阅读(19) 评论(0) 推荐(0) 编辑
摘要:对SSR的理解 SSR也就是服务端渲染,也就是将Vue在客户端把标签渲染成HTML的工作放在服务端完成,然后再把html直接返回给客户端 SSR的优势: 更好的SEO 首屏加载速度更快 SSR的缺点: 开发条件会受到限制,服务器端渲染只支持beforeCreate和created两个钩子; 当需要一 阅读全文
posted @ 2022-11-07 13:15 bb_xiaxia1998 阅读(19) 评论(0) 推荐(0) 编辑
摘要:前言 在之前面试的时候我自己也经常会遇到一些vue原理的问题, 我也总结了下自己的经常的用到的,方便自己学习,今天也给大家分享出来, 欢迎大家一起学习交流, 有更好的方法欢迎评论区指出, 后序我也将持续整理总结~ 描述 Vue 与 React 区别 说明概念: vue:是一套用于构建用户界面的渐进式 阅读全文
posted @ 2022-11-07 13:14 bb_xiaxia1998 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Vue组件data为什么必须是个函数? 根实例对象data可以是对象也可以是函数 (根实例是单例),不会产生数据污染情况 组件实例对象data必须为函数 一个组件被复用多次的话,也就会创建多个实例。本质上,这些实例用的都是同一个构造函数。如果data是对象的话,对象属于引用类型,会影响到所有的实例。 阅读全文
posted @ 2022-11-07 13:13 bb_xiaxia1998 阅读(28) 评论(0) 推荐(0) 编辑
摘要:本文主要分以下两个部分对 Composition API 的原理进行解读: reactive API 原理 ref API 原理 reactive API 原理 打开源码可以找到reactive的入口,在composition-api/src/reactivity/reactive.ts,我们先从函 阅读全文
posted @ 2022-11-07 13:11 bb_xiaxia1998 阅读(26) 评论(0) 推荐(0) 编辑
摘要:组件中写name属性的好处 可以标识组件的具体名称方便调试和查找对应属性 // 源码位置 src/core/global-api/extend.js // enable recursive self-lookup if (name) { Sub.options.components[name] = 阅读全文
posted @ 2022-11-04 08:58 bb_xiaxia1998 阅读(26) 评论(0) 推荐(0) 编辑
摘要:前言 在Vue组件库开发过程中,Vue组件之间的通信一直是一个重要的话题,虽然官方推出的 Vuex 状态管理方案可以很好的解决组件之间的通信问题,但是在组件库内部使用 Vuex 往往会比较重,本文将系统的罗列出几种不使用 Vuex,比较实用的组件间的通信方式,供大家参考。 组件之间通信的场景 在进入 阅读全文
posted @ 2022-11-04 08:56 bb_xiaxia1998 阅读(30) 评论(0) 推荐(0) 编辑
摘要:keep-alive 中的生命周期哪些 keep-alive是 Vue 提供的一个内置组件,用来对组件进行缓存——在组件切换过程中将状态保留在内存中,防止重复渲染DOM。 如果为一个组件包裹了 keep-alive,那么它会多出两个生命周期:deactivated、activated。同时,befo 阅读全文
posted @ 2022-11-04 08:55 bb_xiaxia1998 阅读(356) 评论(0) 推荐(0) 编辑
摘要:vue组件通信方式 一、props(父向子传值 自定义属性) / $emit(子向父传值 自定义事件) 父组件通过props的方式向子组件传递数据,而通过$emit 子组件可以向父组件通信。 1. 父组件向子组件传值(props) 下面通过一个例子说明父组件如何向子组件传递数据:在子组件articl 阅读全文
posted @ 2022-11-04 08:53 bb_xiaxia1998 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Vue 子组件和父组件执行顺序 加载渲染过程: 父组件 beforeCreate 父组件 created 父组件 beforeMount 子组件 beforeCreate 子组件 created 子组件 beforeMount 子组件 mounted 父组件 mounted 更新过程: 父组件 be 阅读全文
posted @ 2022-11-02 08:23 bb_xiaxia1998 阅读(7) 评论(0) 推荐(0) 编辑
摘要:一、computed介绍 computed 用来监控自己定义的变量,该变量在 data 内没有声明,直接在 computed 里面定义,页面上可直接使用。 //基础使用 {{msg}} <input v-model="name" /> //计算属性 computed:{ msg:function() 阅读全文
posted @ 2022-11-02 08:21 bb_xiaxia1998 阅读(14) 评论(0) 推荐(0) 编辑
摘要:你有对 Vue 项目进行哪些优化? (1)代码层面的优化 v-if 和 v-show 区分使用场景 computed 和 watch 区分使用场景 v-for 遍历必须为 item 添加 key,且避免同时使用 v-if 长列表性能优化 事件的销毁 图片资源懒加载 路由懒加载 第三方插件的按需引入 阅读全文
posted @ 2022-11-02 08:19 bb_xiaxia1998 阅读(40) 评论(0) 推荐(0) 编辑
摘要:Vue加载流程 1.初始化的第一阶段是Vue实例也就是vm对象创建前后:首先Vue进行生命周期,事件初始化发生在beforeCreate生命周期函数前,然后进行数据监测和数据代理的初始化,也就是创建vm对象的过程,当vm对象创建完成就可以通过vm对象访问到劫持的数据,比如data中的数据,metho 阅读全文
posted @ 2022-11-02 08:14 bb_xiaxia1998 阅读(21) 评论(0) 推荐(0) 编辑
摘要:对 React 和 Vue 的理解,它们的异同 相似之处: 都将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库; 都有自己的构建工具,能让你得到一个根据最佳实践设置的项目模板; 都使用了Virtual DOM(虚拟DOM)提高重绘性能; 都有props的概念,允许组件间的数据传 阅读全文
posted @ 2022-11-01 09:11 bb_xiaxia1998 阅读(56) 评论(0) 推荐(0) 编辑
摘要:原理性的东西就会文字较多,请耐下心来,细细品味 Vue中DOM更新机制 当你气势汹汹地使用Vue大展宏图的时候,突然发现,咦,我明明对这个数据进行更改了,但是当我获取它的时候怎么是上一次的值(本人比较懒,就不具体举例了👵) 此时,Vue就会说:“小样,这你就不懂了吧,我的DOM是异步更新的呀!!! 阅读全文
posted @ 2022-11-01 09:09 bb_xiaxia1998 阅读(31) 评论(0) 推荐(0) 编辑
摘要:Vue的优点 轻量级框架:只关注视图层,是一个构建数据的视图集合,大小只有几十 kb ; 简单易学:国人开发,中文文档,不存在语言障碍 ,易于理解和学习; 双向数据绑定:保留了 angular 的特点,在数据操作方面更为简单; 组件化:保留了 react 的优点,实现了 html 的封装和重用,在构 阅读全文
posted @ 2022-11-01 09:07 bb_xiaxia1998 阅读(17) 评论(0) 推荐(0) 编辑
摘要:上周五跟着一个师姐面试一个三年工作经验的前端开发,我在一边谨慎的观摩。想着曾经我也被别人面试过,如今面试别人,感觉其实心情是一样的。 前言 工作三年的Vue使用者应该懂什么? 为何工作几年的基础越来越弱? 工作如何挤出时间学习? 一道面试题 其实我们并不是要你把答案都记下来,而是把其中的思想学习到。 阅读全文
posted @ 2022-11-01 09:04 bb_xiaxia1998 阅读(101) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示