缓存 手动keepalive vue

Vue-表单组件

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

offscreenCanvas+worker+IndexedDB实现无感大量图片缓存

一个有必要实现的需求 因为项目中需要使用canvasTexture(一个threejs3d引擎中的材质类型),绘制大量的图片,每次使用都会请求大量的oss图片资源,虽然重复请求会有磁盘缓存但毕竟这个磁盘缓存时效过短, 这里需要了解一下知识才能正常阅读。 Transferable objects ht ......

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

【C++中cin在Qt输出终端无法手动输入问题解决办法(详细)】

现象:在Qt中使用cin进行对一个变量z进行输入,然后在用cout对z进行输出,结果没有进行手动输入,程序自动凭空出现类似512,32759等一些数值输出。 解决办法:第一步:在Qt左侧项目栏,在.pro文件中添加一行代码CONFIG += console 第二步:在项目--运行--勾选在终端中运行 ......
终端 手动 办法 问题 cin

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

nginx keepalive 设置避免 服务器端大量time_wait 增加tcp 连接重用

# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http:/ ......
keepalive time_wait 服务器 nginx time

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

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

vue2.0源码简读(1. 准备工作)

1.1 认识 Flow Flow 是 facebook 出品的 JavaScript 静态类型检查工具。Vue.js 的源码利用了 Flow 做了静态类型检查,所以了解 Flow 有助于阅读源码。 为什么用 Flow JavaScript 是动态类型语言,它的灵活性有目共睹,但是过于灵活的副作用是很 ......
源码 vue2 vue

vue2.0源码简读(2. 数据驱动)

2.1 new Vue 发生了什么 从入口代码开始分析,先来分析 new Vue 背后发生了哪些事情。new 关键字在 Javascript 语言中代表实例化是一个对象,而 Vue 实际上是一个类,类在 Javascript 中是用 Function 来实现的,来看一下源码,在 src/core/i ......
源码 数据 vue2 vue

redis缓存一致 做延时双删

提出现象 做数据库更新A redis缓存刷新A 做据库更新B redis缓存更新B 如果正常执行1,2,3,4步骤,一切正常。但是在高并发的情况下, 执行步骤是 1,3,4,2,导致数据库和缓存不一致。 提出解决方法,做延时双删。 // 操作数据库的方法 @PostMapping("/employe ......
缓存 redis

vue3 设置跨域

changeOrigin 必须设置成 false const { defineConfig } = require('@vue/cli-service'); module.exports = defineConfig({ transpileDependencies: true, devServer: ......
vue3 vue

为什么要用Redis做缓存?为什么用Redis而不用map和Guava?

从请求数据的性能和并发角度来回答这两个问题, 假如用户是第一次访问数据库中的某些数据,第一次访问当然会比较慢,因为是直接从硬盘上读取的,数据通过磁盘IO从磁盘上来到内存中,然后通过网络通信传输给用户,假如我们在第一次读取数据时,将数据存储到内存中,然后第二次以后都从内存中直接读取,那么用户请求数据的 ......
Redis 缓存 不用 Guava map

vue+pdfh5实现将pdf渲染到页面上

版本:pdfh5@1.4.7 vue2+.net Core 6.0webapi 方法一:通过访问后端获取二进制数据来渲染 前端渲染 <template> <vol-box ref="box" :width="width" :height="height"> <div id="demo" ref="r ......
页面 pdfh5 pdfh vue pdf

vue3 使用 store

在script 中使用store https://blog.csdn.net/SubStar/article/details/116077737 <script> import { getCurrentInstance } from "vue"; import { useStore } from " ......
store vue3 vue

vue本地开发的时候自定义域名端口

找到如下文件 以记事本方式打开并插入以下代码 127.0.0.1 localhost127.0.0.1 test.hhProject.com # 将此域名指向127.0.0.1本地环境 再在项目的配置文件中配置域名和端口即可 export default defineConfig({ plugins ......
定义域 端口 时候 vue

Django+Vue.js - 第一章 走进Django

目录第一章 走进Django了解DjangoMVCMTV安装创建项目创建app处理控制器 第一章 走进Django 了解Django Django 诞生于2003年,在2006年加入BSD许可协议,成为开源Web框架 优势 功能完善,容易上手,开发速度快,安全性强; 完善的在线文档; 模型自带数据库 ......
Django Vue js

Redis缓存淘汰策略

八个淘汰策略 volatile-random volatile-lru volatile-lfu volatile-ttl noeviction allkeys-lru allkeys-random allkeys-lfu lru 标准LRU算法是由双向链表及Hash表实现,具体代码实现可以参考LR ......
缓存 策略 Redis

Vue3 Pinia对state的订阅监听($subscribe,$onAction)数据监听

<template> <div class="main-container" :class="{'show-scroll':targetIsVisible}"> <div :style="{height:frameHeight+'px'}" class="main-content" :class=" ......
subscribe onAction 数据 Pinia state

vue pinia sessionstorage 数据存储不上的原因

vue pinia sessionstorage 的坑 默认的配置是开始 localStorage 如果用 sessionstorage 则发现数据存储不上 ,是因为缺少了序列化和反序列化 import { parse, stringify } from 'zipson' export const ......
sessionstorage 原因 数据 pinia vue