时间轴
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
如何批量修改 CRLF 为 LF
1.项目中安装prettier
npm install --save-dev --save-exact prettier
2.执行命令
npx prettier --write --end-of-line lf .
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安全策略,会把“ -> _
状态机
状态机是一种数据模型,用于描述应用可能处于的所有可能状态,以及从一种状态转换到另一种状态的所有可能方式。虽然对于简单的组件来说,这可能有些小题大做了,但它的确可以使得复杂的状态流更加健壮和易于管理。
XState 是 JavaScript 中一个比较常用的状态机实现方案
【Immer】不可变数据结构通过永不更改状态对象来解决这个问题。与 Vue 不同的是,它会创建一个新对象,保留旧的对象未发生改变的一部分。在 JavaScript 中有多种不同的方式来使用不可变数据,但我们推荐使用 Immer 搭配 Vue,因为它使你可以在保持原有直观、可变的语法的同时,使用不可变数据。
JustAuth: 开箱即用的整合第三方登录的开源组件
sshpass 一个简单、轻量级命令行工具,提供非交互式密码验证
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], });
vue 动态加载路由
next({ path: to.path });
// hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
next({ ...to, replace: true });
encodeURIComponent
与 encodeURI
区别:encodeURIComponent加密URI参数;encodeURI加密URI