indexedDB 诞生十余年为何一直不温不火

前言在项目开发过程中,前端需要存储大量的数据。cookie, localstorage 都有存储长度限制。表格一览特性cookielocalStoragesessionStorageindexedDB数据生命周期一般由服务器生成,可以设置过期时间;前端采用和 js-cookie 等组件也可以生成除非被清理,否则一直存在;浏览器关闭还会保存在本地,但是不支持跨浏览器页面关闭就清理刷新依然存在,不支持

- 阅读全文 -

node前端项目运行报错:Error: error:0308010C:digital envelope routines::unsupported

1.问题原因新安装的node.js跑之前的vue项目2.问题原因网上查资料得知,这是新 node v17 后,版本的问题。OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。在node v17以前一些可以正常运行的的应用程序,但是在 V17 版本可能会抛出异常。3.错误描述升级了node.js 版本到 v17.9.1,出现如下错误:node:internal/c

- 阅读全文 -

svg中path贝塞尔曲线和圆弧图文详解

最近研究了一下svg的path标签,功能非常强大,理论上来讲path标签可以画出任意图形。自己记性不太好,记录一下path的使用语法和自己的理解。path介绍path用d属性来描述路径,语法格式大概如下:<svg> <path d="路径描述" /> </svg>其中路径描述包含如下命令:M = moveto 移动到某点。 L = l

- 阅读全文 -

现代 CSS 解决方案:Modern CSS Reset

Normalize.css 为例,它的核心思想是:统一了一些元素在所有浏览器下的表现,保护有用的浏览器默认样式而不是完全清零它们,让它们在各个浏览器下表现一致;为大部分元素提供一般化的表现;修复了一些浏览器的 Bug ,并且让它们在所有浏览器下保持一致性;通过一些巧妙的细节提升了 CSS 的可用性;提供了详尽的文档让开发者知道,不同元素在不同浏览器下的渲染规则;如今,Normalize 已经出到了

- 阅读全文 -

基于Vite+vue3+ant design的定制主题使用方式

近期在使用vite、vue3.x、ant design3.x尝试搭建框架在UI库配置的时候,尝试了如下几种方式进行定制主题(自定义主题)本次使用库版本"ant-design-vue": "^2.2.8", "vite": "^2.8.4", "less": "^4.1.2", &

- 阅读全文 -

解决:微信小程序 Vant Weapp 没有找到可以构建的NPM包,请确认需要参与构建的npm在miniprogramroot目录

最近Vant Weapp的组件库,结果构建npm的时候翻车了,回去查了官方文档,原来要修改project.config.json文件npm init npm i @vant/weapp -S --production开发者工具创建的项目,miniprogramRoot默认为 miniprogram,package.json在其外部,npm 构建无法正常工作。需要手动在 project.config

- 阅读全文 -

在Canvas中使用React Hooks

在本文中,我将使用React Hooks创建一个html canvas 画图网站,我将使用create-react-app脚手架从零开始构建项目。最后这个应用程序有诸如清除、撤销和使用localStorage基本功能。本文我将向您展示任何构建自定义Hooks和在普通的Hooks中重用有状态逻辑。基本设置我们首先使用create-react-app创建一个新的React应用程序。$ npx crea

- 阅读全文 -

Vue3 的 script setup 语法糖是真的爽

还记得刚体验 script setup 语法糖的时候,编辑器提示我这是一个实验性的提案,要使用的话,需要固定 Vue 版本。而在 6 月底,该提案被正式定稿,在 v3.1.3 的版本上,你可以继续使用但仍会有实验性提案的提示,在 v3.2 中,才会去除提示并移除一些废弃的 API。script setup 是个啥?它是 Vue3 的一个新语法糖,在 setup 函数中。所有 ES 模块导出都被认为

- 阅读全文 -

PIXI.JS 点击获取当前坐标

PIXI Canvas 点击事件如下​ onMounted(() => { console.log('mounted') app.renderer.plugins.interaction.on('pointerdown', (event: PIXI.InteractionEvent) => { let ax = event.data.get

- 阅读全文 -