时间轴

时间轴

Demon ·

vue3+ts无法渲染,报错jsoneditor does not provide an export named 'default'
这是因为vite对commonjs兼容性太差,导致无法引入jsoneditor,可以使用@originjs/vite-plugin-commonjs插件解决。

// vite.config.js
import
from '@originjs/vite-plugin-commonjs'
export default defineConfig({
plugins: [vue(),viteCommonjs()],
})
Vite的 官方文档 也有提到:Pre-bundle them to improve page loading speed and convert CommonJS / UMD modules to ESM.所以不需要这个plugin,不过得直接在项目源代码里 import 'jsoneditor' 才会转换。

参考 issue #4

Demon ·

如何批量修改 CRLF 为 LF

1.项目中安装prettier
npm install --save-dev --save-exact prettier
2.执行命令
npx prettier --write --end-of-line lf .

Demon ·

Content-Disposition:
attachment; filename="%E6%B5%8E%E5%8D%97%E5%B8%82%E5%85%AC%E5%85%B1%E6%95%B0%E6%8D%AE%E6%8E%88%E6%9D%83%E8%BF%90%E8%90%A5%E5%B9%B3%E5%8F%B0%E5%85%AC%E5%85%B1%E6%95%B0%E6%8D%AE%E8%B5%84%E6%BA%90%E7%94%B3%E8%AF%B7%E8%A1%A8.docx"

由于google安全策略,会把“ -> _

Demon ·

状态机​
状态机是一种数据模型,用于描述应用可能处于的所有可能状态,以及从一种状态转换到另一种状态的所有可能方式。虽然对于简单的组件来说,这可能有些小题大做了,但它的确可以使得复杂的状态流更加健壮和易于管理。

XState 是 JavaScript 中一个比较常用的状态机实现方案

Demon ·

【Immer】不可变数据结构通过永不更改状态对象来解决这个问题。与 Vue 不同的是,它会创建一个新对象,保留旧的对象未发生改变的一部分。在 JavaScript 中有多种不同的方式来使用不可变数据,但我们推荐使用 Immer 搭配 Vue,因为它使你可以在保持原有直观、可变的语法的同时,使用不可变数据。

Demon ·

JustAuth: 开箱即用的整合第三方登录的开源组件

Demon ·

sshpass 一个简单、轻量级命令行工具,提供非交互式密码验证

Demon ·

Non-function value encountered for default slot. Prefer function slots
Non-function value encountered for default slot. Prefer function slots
问题原因:
Vue3 使用h函数 推荐使用函数式插槽,以便获得更佳的性能。

解决方式:
// 错误
return h(xxx,
, );
// 正确
return h(xxx,
, { default: () => xxx });
// 多个插槽
return h( xxx,
, { default: () => [xxx, xxx], });

Demon ·

vue 动态加载路由

next({ path: to.path });
              // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
              next({ ...to, replace: true });
Demon ·

encodeURIComponentencodeURI 区别:encodeURIComponent加密URI参数;encodeURI加密URI