Pinia 数据持久化储存(pinia-plugin-persistedstate)

文章介绍了如何使用`pinia-plugin-persistedstate`插件在Pinia中实现状态持久化。首先通过`npm i pinia-plugin-persistedstate`安装插件,然后在创建Pinia实例时引入并使用该插件。对于需要持久化的状态模块,在定义store时通过设置`persist: true`来启用持久化功能。


解决路由缓存问题

文章介绍了三种在Vue Router中处理路由变化时更新数据的方案:1. 为`<router-view>`添加`key`属性;2. 使用`watch`监听路由参数变化并重新拉取数据;3. 推荐使用`onBeforeRouteUpdate`钩子函数,在路由更新前自动获取最新数据。每种方法都提供了具体的代码示例。


element table el-table-column设置了v-if之后 render-header 不生效

文章描述了在使用Element UI的`el-table`组件时,通过`render-header`自定义表头渲染遇到的问题。当在`el-table-column`标签上使用`v-if`时,会导致`render-header`失效。解决该问题的方法是在`el-table-column`中添加`key`属性,这样不仅能恢复`render-header`的功能,还能避免表头错位等问题。


ES6 Promise用法小结

Promise对象是用于处理异步操作的一种机制,具有两个特点:状态(pending、fulfilled或rejected)仅由其结果决定且不可变;一旦状态确定,该结果将一直可用。通过`new Promise`创建,并使用`resolve`和`reject`来改变状态。Promise允许链式调用`.then()`进行成功回调,`.catch()`捕捉错误,而`.all()`等待所有Promise完成,`.race()`则以最先完成的为准。这些特性使得Promise在处理多层异步逻辑时更加简洁有效。例如,可以设置一个请求超时机制,利用`.race()`实现,在指定时间内未完成则触发失败处理。


记录一个javascript中map/forEach循环中await未生效的问题

文章讨论了在使用`map`循环时,即使内部使用了`await`,外部代码也会优先执行的问题。原因是`map`内部通过回调函数执行,`await`不会等待这些回调完成。为解决此问题,提出了两种方法:一是使用`Promise.all`包裹`map`操作,二是采用传统的`for`循环来确保异步操作按顺序执行。


js 数值金额计算错误

该代码示例展示了JavaScript中浮点数运算的精度问题,直接进行加减操作时可能会得到不准确的结果(如2.51 + 0.01得到2.5199999999999996)。而使用currency函数处理数值后执行相同操作,则能得到预期的精确结果(如2.51 + 0.01正确得到2.52)。


bat 批处理打包 vue项目

该脚本是一个用于编译和打包项目的批处理文件,强调了只能使用记事本以ANSI格式保存以确保中文字符正确显示。它通过调用命令行工具切换到指定目录并执行`npm run build:prod`命令来完成编译打包过程,最后暂停等待用户确认。