Vue2异步更新及nextTick原理
vue 官网中是这样描述 nextTick 的
在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,可以获取更新后的 DOM。
在学习 nextTick 是如何实现之前,我们要先了解下 JavaScript 的执行机制
JavaScript 执行机制
浏览器是...[2023/4/10]
一个 OpenTiny,Vue2 Vue3 都支持!
大家好,我是 Kagol,OpenTiny 开源社区运营,TinyVue 跨端、跨框架组件库核心贡献者,专注于前端组件库建设和开源社区运营。
今天给大家介绍如何同时在 Vue2 和 Vue3 项目中使用 TinyVue。
TinyVue 是一套跨端、跨框架的企业级 UI 组件库,支持 Vue...[2023/4/7]
NodeJS 实战系列:个人开发者应该如何选购云服务
这文章至少值一千元,因为这是我保守估计花出去的冤枉钱(请自行脑补一个苦笑的 emoji)
文章中会穿插选择云服务的一些建议,当然也会提供一些“薅羊毛”的技巧。不过在此之前我们要想清楚一件更重要的事情:我为了什么购买云服务
做产品还是做技术
这个问题不仅决定了你接下来的购买策略,还是你编码开始...[2023/4/3]
Vue2依赖收集原理
观察者模式定义了对象间一对多的依赖关系。即被观察者状态发生变动时,所有依赖于它的观察者都会得到通知并自动更新。解决了主体对象和观察者之间功能的耦合。
Vue中基于 Observer、Dep、Watcher 三个类实现了观察者模式
Observer类 负责数据劫持,访问数据时,调用dep.de...[2023/4/3]
【原理揭秘】Vite 是怎么兼容老旧浏览器的?你以为仅仅依靠 Babel?
作者:京东科技 孙凯
一、前言
对前端开发者来说,Vite 应该不算陌生了,它是一款基于 nobundle 和 bundlele 思想诞生的前端开发与构建工具,官网对它的概括和期待只有一句话:“下一代的前端工具链”。
Vite 最早的版本由尤雨溪发布于3年前,经历了3年多的发展,Vit...[2023/4/3]
微信小程序使用百度AI识别接口的通用封装Promise详解
百度AI开放平台
百度AI开放平台是目前市场上主流开放接口平台之一,新用户还可领取免费资源(适合我这种勤俭节约的人),本篇就来介绍如何对百度AI的开放接口进行通用封装。
百度接口调用封装(Promise)
此封装主要是针对需要上传图片识别的接口,比如翻译,身份证识别,车牌识别等等。其他不需...[2023/4/3]
TS 基础及在 Vue 中的实践:TypeScript 都发布 5.0 版本啦,现在不学更待何时!
大家好,我是 Kagol,OpenTiny 开源社区运营,TinyVue 跨端、跨框架组件库核心贡献者,专注于前端组件库建设和开源社区运营。
微软于3月16日发布了 TypeScript 5.0 版本。微软表示新版本体积更小、开发者更容易上手且运行速度更快。
根据 The Soft...[2023/3/31]
fastjson很好,但不适合我
记者:大爷您有什么特长呀?
fastjson:我很快。
记者:23423乘以4534等于多少?
fastjson:等于2343.
记者:??
fastjson:你就说快不快吧!
这个略显马丽苏的标题,各位看官将就着看吧。主要是怕被喷。fastjson真的很好,我用不用的...[2023/3/31]
详解requestAnimationFrame和setInterval该如何选择
目录正文requestAnimationFrame的工作方式setInterval的工作方式requestAnimationFrame和setInterval之间的区别适用场景写在后面 正文
在Web前端开发中,使用计时器是实现动画效果、周期性任务、定时器等常见操作的核心。JavaScrip...[2023/3/31]
Three.js 进阶之旅:全景漫游-初阶移动相机版
声明:本文涉及图文和模型素材仅用于个人学习、研究和欣赏,请勿二次修改、非法传播、转载、出版、商用、及进行其他获利行为。
摘要
3D 全景技术可以实现日常生活中的很多功能需求,比如地图的街景全景模式、数字展厅、在线看房、社交媒体的全景图预览、短视频直播平台的全景直播等。Three.js 实现...[2023/3/29]
NodeJS V8引擎的内存和垃圾回收器(GC)
一、为什么需要GC
程序应用运行需要使用内存,其中内存的两个分区是我们常常会讨论的概念:栈区和堆区。
栈区是线性的队列,随着函数运行结束自动释放的,而堆区是自由的动态内存空间、堆内存是手动分配释放或者 垃圾回收程序(Garbage Collection,后文都简称GC)自动分配释放的。
软件...[2023/3/29]
Vue2数据驱动渲染(render、update)Vue2数据驱动渲染(render、update)
上一篇文章我们介绍了 Vue2模版编译原理,这一章我们的目标是弄清楚模版 template和响应式数据是如何渲染成最终的DOM。数据更新驱动视图变化这部分后期会单独讲解
我们先看一下模版和响应式数据是如何渲染成最终DOM 的流程
Vue初始化
new Vue发生了什么
Vue入口构造函数...[2023/3/29]
一文搞懂Vue八大生命周期钩子函数
目录一.速识概念:二.八大生命周期钩子函数:三.结合代码了解:1. beforeCreate:2.created:3.beforeMount:4.mounted:5.beforeUpdate:6.updated:7.beforeDestroy:8.destroyed: 一.速识概念:
&emsp...[2023/3/29]
Vue3组件异步更新和nextTick运行机制源码解读
目录组件的异步更新queueJobqueueFlushflushJobs总结:nextTick 组件的异步更新
我们应该都知道或者听说过组件的更新是异步的,对于nextTick我们也知道它是利用promise将传入的回调函数放入微任务队列中,在函数更新完以后执行,那么既然都是异步更新,nex...[2023/3/29]
使用canvas制作炫酷黑客帝国数字雨背景html+css+js
目录制作:1.定义canvas标签:2.开始js部分,先定义变量:3.初始化字符串数组,先给每条字符串位置,字符先不给:4.绘制每条字符串:5.更新字符串:6.设置动画过程:7.在窗口大小改变时,设置canvas画布能实时铺满屏幕:完整代码: 制作:
1.定义canvas标签:
<ca...[2023/3/29]
TypeScript 学习笔记 — 类型兼容 (十)
目录一.基本数据类型的兼容性二.接口兼容性三.函数的兼容性四.类的兼容性类的私有成员和受保护成员五.泛型的兼容性六.枚举的兼容性标称类型简短介绍
TS 是结构类型系统(structural type system),基于结构/形状检查类型,而非类型的名字。
TS 中的兼容性,主要看结构是否...[2023/3/27]
Postman抓包浏览器请求--傻瓜式操作
该帖子直接在博客园网站编辑的,布局请多多包含??
1、安装chrome插件(postmanInterceptor插件,在任意插件网站都可搜到,下载安装到浏览器即可),该插件可协助postman捕获https请求
2、安装postman
post...[2023/3/27]
Vue2模版编译(AST、Optimize 、Render)Vue2模版编译(AST、Optimize 、Render)
在Vue $mount过程中,我们需要把模版编译成render函数,整体实现可以分为三部分:
parse:解析模版 template生成 AST语法树
optimize: 优化 AST语法树,标记静态节点
codegen: 把优化后的 AST语法树转换生成render方法代码字符串,利用模板引...[2023/3/27]
一文详解Vue选项式?API?的生命周期选项和组合式API
目录Vue2、Vue3 生命周期的变化选项式 API 的生命周期选项的变化小知识组合式 生命周期选项 APIVNode 生命周期事件Vue2xVue3x Vue2、Vue3 生命周期的变化
正好在看Vue的官方文档,也正好比对一下,做一下笔记
选项式 API 的生命周期选项的变化
Vu...[2023/3/27]
vue组合式API浅显入门示例详解vue组合式API浅显入门示例详解
目录正文组合式APIsetup变量声明目前比起选项式API的优点生命周期 正文
在react推出了hook之后,vue也在vue3里面添加了组合式API,鉴于这个时间间隔,我有理由认为组合式api和hook还是有一些关系的。不过在我具体的使用中,我并没发现这两个方法太多的相同点,不过鉴于vu...[2023/3/27]
JS实用技巧实现loading加载示例详解JS实用技巧实现loading加载示例详解
目录防抖节流自定义指令一、问题现象二、想法三、实现loading加载一、想法二、实现总结 防抖节流自定义指令
一、问题现象
操作系统流程时,网速过慢,点击【按钮】,页面没有及时反应;用户感知不到,再次点击按钮,系统流程报错。
二、想法
...[2023/3/27]
js前端上传文件缩略图技巧示例详解
目录引言文件对象简介BlobFileFileReaderFormData文件对象之间的关系缩略图的实现总结 引言
通常情况下,前端提交给服务器的数据格式为JSON格式,但很多时候用户想上传自己的头像、视频等,这些非文本数据的时候,就不能直接以JSON格式上传到后端了。
当我们要获取用户上...[2023/3/27]
JS前端认证授权技巧归纳总结
目录概念介绍认证授权鉴权认证、授权和鉴权关系认证授权方案HTTP 基本认证Se ion-CookieToken什么是 TokenRefresh TokenJSON Web Token(JWT)Oauth 2.0总结 概念介绍
认证授权在业界已经有很多成熟的方案,但对于前端开发来说,大部分情况...[2023/3/27]
在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口
在基于vue-next-admin 的 Vue3+TypeScript 前端项目中,可以整合自己的 .NET 后端,前端操作一些功能的时候,为了使用方便全局挂载的对象接口,以便能够快速处理一些特殊的操作,如消息提示、辅助函数、正则测试等等。本篇随笔介绍在Vue3+TypeScript ...[2023/3/24]
在Vue3+TypeScript 前端项目中使用事件总线Mitt
事件总线Mitt使用非常简单,本篇随笔介绍在Vue3+TypeScript 前端项目中使用的一些场景和思路。我们在Vue 的项目中,经常会通过emits 触发事件来通知组件或者页面进行相应的处理,不过我们使用事件总线Mitt来操作一些事件的处理,也是非常方便的。
Mitt 的GitH...[2023/3/24]
vue3中getCurrentInstance示例讲解
目录父组件中:main.js方式一、通过 getCurrentInstance 方法获取当前组件实例,从而获取 route 和 router方式二:通过从路由中导入 useRoute useRouter 使用 route 和 router。附:Vue3中关于getCurrentInstance的大坑...[2023/3/24]
CSS 高阶小技巧 - 角向渐变的妙用!
本文将介绍一个角向渐变的一个非常有意思的小技巧!
我们尝试使用 CSS 绘制如下图形:
在之前,类似的图案,其实我们有尝试过,在 单标签实现复杂的棋盘布局 一文中,我们用单标签实现了这样一个棋盘布局:
那么,本文有什么特殊之处呢?让我们一探究竟。
快速实现网格布局
首先,上述的布...[2023/3/22]
在echaerts中渲染50万条数据的优化方案
背景:项目需求中要在页面上渲染大约50万条左右的波形数据图表
那么如何解决渲染中的卡顿呢?
肯定是要从服务端和前端一起优化这是毋庸置疑的。
1.服务端:
服务端耗时最多的一定是在数据库的筛选数据的行为上,本次需求中数据的筛选是根据物理量的类型和时间来进行的...[2023/3/22]
BootstrapBlazor + FreeSql ORM 实战 Table 表格组件维护多表数据 - OneToOne
OneToOne 垂直扩展表字段是很常见的方法, 主表存商品资料, 分表存每个客户对应商品的备注和个性化的价格等等, 本文使用Blazor一步步实现这个简单的需求.
1. 基于实战 10分钟编写数据库维护项目建立项目 b17tableII
2. 数据实体类
One To One 关系:
在这里...[2023/3/22]
js直接操作数据库会怎么样
这几天刷脉脉的时候看到一个话题初看觉得可笑,再看陷入沉思,最后还是决定花点时间想清楚,写下来。
确实没见人这么干过,为什么呢?
技术限制
被技术限制了?据我所知目前没有面向js的数据库驱动,但反观现在的技术大...[2023/3/22]
使用Net将HTML简历导出为PDF格式
现在有许多将HTML导出PDF的第三方包,这里介绍使用的是Select.HtmlToPdf.NetCore
使用Select.HtmlToPdf.NetCore
整体思路是将cshtml内容读出来,然后再转为Pdf文档
读取cshtml内容有两种方法,第一种使用第三方包 RazorEngine...[2023/3/22]
详解uniapp和vue在路由方面的不同和联系
Uniapp 和 Vue 在路由方面有相似之处,因为 Uniapp 是基于 Vue 的。Uniapp 的路由系统是通过 Vue Router 实现的,因此两者有许多相同的概念和 API。
相同点:
都支持基于 URL 的路由;
都可以使用嵌套路由来管理多个页面之间的关系;
都支持路由参数和查...[2023/3/22]
NodeJs的模块化和包
模块化的基本概念
什么是模块化?
模块化是解决一个复杂问题时,自顶向下逐层把系统划分为若干个模块的过程,编程中,就是遵守一定规则,把一个大文件拆成独立并相互依赖的多个小模块。
模块化规范
使用什么样的语法格式引用模块和向外暴露成员
CommonJS规范
Node.js 遵循了 CommonJ...[2023/3/22]
【ASP.NET Core】在node.js上托管Blazor WebAssembly应用
由于 Blazor-WebA embly 是在浏览器中运行的,通常不需要执行服务器代码,只要有个“窝”能托管并提供相关文件的下载即可。所以,当你有一个现成的 Blazor wasm 项目,没必要用其他语言重写,或者你不想用 ASP.NET Core 来托管(有些大材小用了),就可以试试用 nod...[2023/3/22]
处理尚不存在的 DOM 节点
探索 MutationObserver API 与传统轮询等待最终被创建的节点方法相比的优劣。
有时候,您需要操作尚未存在的 DOM 的某个部分。
出现这种需求的原因有很多,但你最常看到的是在处理第三方脚本时,这些脚本会异步地将标记注入页面。举个例子,我最近需要在用户关闭Google r...[2023/3/22]
Three.js 进阶之旅:物理效果-3D乒乓球小游戏 🏓
声明:本文涉及图文和模型素材仅用于个人学习、研究和欣赏,请勿二次修改、非法传播、转载、出版、商用、及进行其他获利行为。
摘要
本文在专栏上一篇内容《Three.js 进阶之旅:物理效果-碰撞和声音》的基础上,将使用新的技术栈 React Three Fiber 和 Cannon.js 来实...[2023/3/20]
万字血书Vue—路由
多个路由通过路由器进行管理。
前端路由的概念和原理
(编程中的)路由(router)就是一组key-value对应关系,分为:后端路由和前端路由
后端路由指的是:请求方式、请求地址和function处理函数之间的对应关系
在SPA程序中,所有组件的展示和切换都在这唯一的一个页面内完成,...[2023/3/20]
最新 umi4-max 如何使用 webpack5 联邦模块
新项目用 umi4-max 搭建,部分功能想要使用其他项目的功能,不想重新开发,想到了使用 webpack5 的联邦模块,可以直接引用其他项目代码来实现共享代码。
理想很美好,现实很残酷。直接按照 webpack5 联邦模块的使用方法,并不能成功,而官方文档没有明确说明如何使用。
webpa...[2023/3/20]
前端性能精进之浏览器(五)——JavaScript
JavaScript 是一种通过解释执行的高级编程语言,同时也是一门动态、弱类型的直译脚本语言,适合面向对象(基于原型)和函数式的编程风格。
直译语言可以直接在解释器中运行,而与直译语言相对应的编译语言(例如 C++),要先将代码编译为机器码,然后才能运行。
不过直译语言有一个弱...[2023/3/20]
react中context传值和生命周期详解react中context传值和生命周期详解
目录context传值用途Context传值优点何时使用 ContextContextAPI项目案例:主题色切换。添加自定义颜色添加监听context变化类组件的生命周期 假设:
项目中存在复杂组件树:
context传值用途
数据是通过 props 属性自上而下(由父及子)进行传...[2023/3/20]
vue3下watch的使用方法示例
目录一,监听单个数据ref二,监听引用类型数据ref:深度监听1,引用类型ref直接深度监听2,引用类型ref深拷贝深度监听三,监听单个数据:reactive四,监听引用类型数据:reactive五,immediate: true六,监听多个数据源七,flush的配置1,默认情况下在dom渲染完毕前...[2023/3/20]
vue3.x项目降级到vue2.7的解决方案vue3.x项目降级到vue2.7的解决方案
目录把 vue3 项目降级到 vue2 ??为什么要降级到 vue2 ?vue3 和 vue2 的依赖对比 vue3 和 vu2 的区别实践步骤vue 降级vue-router 降级element-uipiniaeslint + husky + prettier + typescript问题/缺陷总...[2023/3/20]
vue多环境配置之 .env配置文件详解
目录Vue之.env环境配置文件前言一、.env是什么?二、说明及用法1. 文件说明2. 文件读取2.1 npm run serve2.2 npm run build3. 查看环境变量4. 使用环境变量总结 Vue之.env环境配置文件
.env文件是运行项目时的环境配置文件。但是在实际开发过程...[2023/3/20]
Qt实战之实现图片浏览器
目录图片浏览器逻辑效果图具体实现utils.himage.himage_group.himage_group.cppqimgviewwidget.hqimgviewwidget.cppmain.cpp 图片浏览器逻辑
实现图片浏览器用到了前面几乎所有的知识,包括窗口部件、布局、事件、对象模型与容...[2023/3/17]
Vue实现简单搜索功能的示例代码
目录1、概述2、功能逻辑2.1功能流程2.2 流程图3、功能实现3.1 vue组件化3.2 代码3.3 动态效果 1、概述
在vue项目中,搜索功能是我们经常需要使用的一个场景,最常用的是在列表数据中搜索一个想要的,今天的例子就是我们实现vue从列表数据中搜索,并展示。如下图所示:
2...[2023/3/17]
Vue实现骨架屏的示例代码
vue实现页面加载占位
效果如下
思路与实现
页面加载时用户等待,此时与用户交互的方式通常有等待层、进度条、加载动画等;本次介绍加载占位,把页面即将展示的样子用c 背景展示出来,等数据返回后即可进行页面渲染,可以有效减少页面抖动。
页面组成如下:
占位子组件:使用纯c 编...[2023/3/17]
Vue.js React与Angular流行前端框架优势对比
目录Vue.js、React和Angular对比以下是Vue.js的代码示例:以下是React的代码示例:以下是Angular的代码示例: Vue.js、React和Angular对比
Vue.js、React和Angular都是流行的前端框架,它们都有自己的优势和劣势。
以下是...[2023/3/17]
threeJs实现波纹扩散及光标浮动效果详解
目录版本介绍threejs版本vue版本node版本正文核心代码导入即用1. 新建一个ts文件2. 在要用的页面导入 版本介绍
threejs版本
"version": "0.142.0",
vue版本
"version": "^3.0.0"
node版本
&qu...[2023/3/17]
vue3使用vueup/vue-quill富文本、并限制输入字数的方法处理
目录一、效果展示二、npm三、main.js引入四、页面使用五、总结问题(简单记录一下笨方法处理的) vue3中使用富文本实在是踩了太多坑了,大概记录一下笨方法处理,有好的方法多交流
一、效果展示
二、npm
npm install @vueup/vue-quill@alpha -...[2023/3/15]
Vue3全局组件通信之provide?/?inject详解
目录1、前言2、provide / inject3、发起 provide4、接收 inject5、响应性数据的传递与接收6、引用类型的传递与接收 (针对非响应性数据的处理)7、基本类型的传递与接收 (针对非响应性数据的处理) 1、前言
顾名思义,爷孙组件是比 父子组件通信 要更深层次的引用关系(...[2023/3/15]