接口axios vue all

vue-富文本/自定义上传图片

1、下载组件 npm install vue-quill-editor –D 2、在需要的组件内引入富文本 import { quillEditor } from 'vue-quill-editor' import 'quill/dist/quill.core.css' import 'quill/ ......
文本 图片 vue

vue-解决vux中siwper高度不自适应

1、swiper设置height:auto 2、设置swiper-itemposition:static <swiper-item v-for="(item, index) in list" :key="index" :style='selected_index==index?{position: ......
高度 siwper vue vux

Vue-方法封装

// 使用说明查看 README.md let commonJs = {} // 1、深拷贝 commonJs.deepMerge = (target, source) => { // 判断被拷贝对象是Object // 陷阱!!typeof(null) 'object' true if (type ......
方法 Vue

Vue-表格组件封装

封装代码: <!-- * @Descripttion:表格组件--> <template> <div class='YxkTable'> <el-table :data="data" v-bind="tableBind" v-on="this.$listeners"> <ELTableColumn ......
组件 表格 Vue

Vue-搜索组件封装

组件代码: <!-- * @Descripttion:搜索组件--> <template> <div class='YxkSearch'> <el-form :model="form" :ref="$attrs.formRef" v-bind="$attrs"> <!-- 搜索项 --> <temp ......
组件 Vue

Vue-Excel(Excel导入)

<!-- Excel表格导入/上传组件,滑到底部可查看详细说明,--> <template> <div class="ImportExcel"> <el-form> <el-upload action="" :accept="excelObjData.accept" :limit="excelObj ......
Excel Vue-Excel Vue

Vue-Drag 拖拽组件

组件代码: <!-- 拖拽组件,使用说明见 README.md,--> <template> <div class='YxkDrag'> <VDraggable v-bind="dragBind(dragObj)" @start="dragStart" @end="dragEnd" v-on="th ......
组件 Vue-Drag Drag Vue

Vue-iframe嵌入页自适应

Iframe嵌入页自适应方法 /* iframe自适应 config: { iframeId: '', // iframe id/class iframeBodyId: '', // iframe内 包裹元素 id/class bodyId: '.main-container', // 包裹ifra ......
Vue-iframe iframe Vue

Vue2与Vue3响应式原理对比

前言 技术栈是 Vue 的人,在面试中难免会被问到 Vue2 和 Vue3 的相关知识点的实现原理和比较,面试官是步步紧逼,一环扣一环。 Vue2 的响应式原理是怎么样的? Vue3 的响应式原理又是怎么样的? Vue2 中是怎么监测数组的变化的? Vue3 中又是怎么监测数组的变化的? 在问完 V ......
Vue 原理 Vue2 Vue3

Vue3 provide和inject实现原理

Vue3 的 Provide / Inject 的实现原理其实就是巧妙利用了原型和原型链来实现的,所以在了解 Vue3 的 Provide / Inject 的实现原理之前,先复习一下原型和原型链的知识。 原型和原型链的知识回顾 prototype 与 __proto__ prototype 一般称 ......
原理 provide inject Vue3 Vue

Vue-表单组件

组件代码: <!-- * @Descripttion:表单组件--> <template> <div class='YxkForm'> <el-form :model="form" :ref="$attrs.formRef || 'ruleForm'" v-bind="formBind(formOb ......
表单 组件 Vue

axios请求并发限制

队列有x个之后执行 正文 在网上看到这么一道题: 首先来实现一个分割数组的函数~ const group = (list = [], max = 0) => { if (!list.length) { return list; } let results = []; for (let i = 0, ......
axios

axios、ajax、fetch三者的区别

1.ajax:是指一种创建交互式网页应用的网页开发技术,并且可以做到无需重新加载整个网页的情况下,能够更新部分网页,也叫作局部更新 优缺点: 1)局部更新 2)原生支持,不需要任何插件 3)原生支持,不需要任何插件 4)可能破坏浏览器后退功能 5)嵌套回调,难以处理 2.axios:是一个基于 pr ......
axios fetch ajax

axios请求失败、请求超时重新发送请求

一、 axios 重新发送请求基础版(所有的请求错误,不论是请求超时还是接口请求出错都会进行重试) 以下是一个完整的文件,看懂了的话 axios 重试请求也就基本会了,不会的话直接复制到项目里,也可以直接调用使用。 创建一个 axios 实例,并在实例中设置请求超时时间 timeout、重试请求次数 ......
axios

源码解析axios拦截器

从源码解析axios拦截器是如何工作的 axios 拦截器的配置方式 axios 中有两种拦截器: axios.interceptors.request.use(onFulfilled, onRejected, options):配置请求拦截器。 onFulfilled 方法在发送请求前执行,接收 ......
源码 axios

前端应该如何封装高扩展的axios请求库

我看了很多 axios 的封装,但是我感觉他们的封装。也不够自由,主要是写完之后,如果以后有东西需要修改的时候,还要回去拦截器进行修改。但是有一些东西拦截器可能是你以后的业务需求才需要添加的。 我就在想我能不能拦截器做成插件式的模式进行动态配置呢?例如下面的效果,点击添加一个请求缓存器,请求的时候就 ......
前端 axios

Vue插槽(Slot)的实现原理

实现原理(简单文字) slot 又名插槽,是 Vue 的内容分发机制,组件内部的模板引擎使用 slot 元素作为承载分发内容的出口。插槽 slot 是子组件的一个模板标签元素,而这一个标签元素是否显示,以及怎么显示是由父组件决定的。slot 又分三类,默认插槽,具名插槽和作用域插槽 实现原理:当子组 ......
原理 Slot Vue

Vue3 模板引用 ref 的实现原理

什么是模板引用 ref ? 有时候可以使用 ref attribute 为子组件或 HTML 元素指定引用 ID。 <template> <input ref="input" /> </template> <script> import { defineComponent, ref } from " ......
原理 模板 Vue3 Vue ref

Vue2 keep-alive实现原理

Vue.js 内部将 DOM 节点抽象成了一个个的 VNode 节点,keep-alive 组件的缓存也是基于 VNode 节点的而不是直接存储 DOM 结构。它将满足条件(pruneCache 与 pruneCache)的组件在 cache 对象中缓存起来,在需要重新渲染的时候再将 vnode 节 ......
keep-alive 原理 alive Vue2 keep

Vue3 的 effect、 watch、watchEffect 的实现原理

所谓 watch,就是观测一个响应式数据或者监测一个副作用函数里面的响应式数据,当数据发生变化的时候通知并执行相应的回调函数。 Vue3 最新的 watch 实现是通过最底层的响应式类 ReactiveEffect 的实例化一个 reactive effect 对象来实现的。它的创建过程跟 effe ......
watchEffect 原理 effect watch Vue3

Vue $nextTick原理

作用:vue 更新 DOM 是异步更新的,数据变化,DOM 的更新不会马上完成,nextTick 的回调是在下次 DOM 更新循环结束之后执行的延迟回调。 实现原理:nextTick 主要使用了宏任务和微任务。根据执行环境分别尝试采用 Promise:可以将函数延迟到当前函数调用栈最末端 Mutat ......
nextTick 原理 Vue

vue路由通过props传参

方式一:布尔模式 方法一:直接传参 路由配置: { path: '/user/:id/:price', name: 'User', component: User, props: true } 页面 A <template> <div> <router-link :to="{ name: 'User ......
路由 props vue

vue组件递归

这样的场景:渲染列表数据的时候,列表的子项还是列表。如果层级少尚且可以用几个 for 循环搞定,但是层级多或者层级不确定就有点无从下手了。 其实这就是树形结构数据,像常见的组织架构图,文件夹目录,导航菜单等都属于这种结构。很多组件库都带有树形组件,但往往样式不是想要的,改起来也非常的费劲。那么,如何 ......
组件 vue

vue2为什么只重写了7个数组方法

首先看源码 //即将要被劫持的数组 let arr = [1, 2, 3]; //先把要劫持的方法列出来 let methods = ["push", "pop", "shift", "unshift", "reverse", "sort", "splice"]; //既然要劫持原型,就要先把原型拿 ......
个数 方法 vue2 vue

vue2.0源码简读(5. 扩展)

5.1 event 平时开发工作中,处理组件间的通讯,原生的交互,都离不开事件。对于一个组件元素,不仅仅可以绑定原生的 DOM 事件,还可以绑定自定义事件,非常灵活和方便。那么接下来从源码角度来看看它的实现原理。 为了更加直观,通过一个例子来分析它的实现: let Child = { templat ......
源码 vue2 vue

vue2.0源码简读(7. Vuex)

7.1 Vuex 初始化 这一节主要来分析 Vuex 的初始化过程,它包括安装、Store 实例化过程 2 个方面。 安装 当在代码中通过 import Vuex from 'vuex' 的时候,实际上引用的是一个对象,它的定义在 src/index.js 中: export default { S ......
源码 vue2 Vuex vue

vue中created、watch和computed的执行顺序

总结 关于 vue 中 created 和 watch 的执行顺序相对比较简单,而其中 computed 是通过 Object.defineProperty 为当前 vm 进行定义,再到后续创建 vNode 阶段才去触发执行其 get 函数,最终执行到计算属性 computed 对应的逻辑。 官网的 ......
顺序 computed created watch vue

vue2.0源码简读(6. Vue Router)

6.1 路由注册 Vue 从它的设计上就是一个渐进式 JavaScript 框架,它本身的核心是解决视图渲染的问题,其它的能力就通过插件的方式来解决。Vue-Router 就是官方维护的路由插件,在介绍它的注册实现之前,先来分析一下 Vue 通用的插件注册原理。 Vue.use Vue 提供了 Vu ......
源码 Router vue2 vue Vue

vue2.0源码简读(4. 深入响应式原理)

4.1 响应式对象 Object.defineProperty Object.defineProperty 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象,先来看一下它的语法: Object.defineProperty(obj, prop, descriptor ......
源码 原理 vue2 vue

vue2.0源码简读(3. 组件化)

3.1 createComponent 在分析 createElement 的实现的时候,它最终会调用 _createElement 方法,其中有一段逻辑是对参数 tag 的判断,如果是一个普通的 html 标签,上一章的例子那样是一个普通的 div,则会实例化一个普通 VNode 节点,否则通过 ......
组件 源码 vue2 vue