allen
allen
You're welcome. I'm just offering a config page solution that I think is good. I like unocss's config page, but it doesn't apply here, so I chose to implement it...
配置过期时间确实是一个比较常见的应用场景,不过它与持久化存储本质上属于两个功能,我觉得另写一个插件来做这件事会更好一些
使用 JSON.stringify 是因为 localStorage 本身只能存储 string 格式数据,如果要支持处理Map和Set的话 [这里](https://stackoverflow.com/a/56150320/22297919)有一些解决方案,但是我个人会觉得这些属于比较`hack`的方案,同时Map和Set本身可以用Object和Array来代替,这个并不属于硬性功能,当然如果有其他想法或建议也开放讨论
>  storage 被设置为了 window.localStorage, 这在小程序中是不存在的
不清楚你这么设置的应用场景是什么,一个 uniapp 中开发 h5 和小程序, 然后希望 h5 那边的持久化使用 localStorage 吗 如果是这个场景的话,只需要设置 H5Storage: window?.localStorage 就可以了,strategies 的 item 中不用设置 storage,内部处理逻辑见 https://github.com/Allen-1998/pinia-plugin-persist-uni/blob/main/src/index.ts#L69
考虑到源码中本身已有 `$emit('result')` 来体现二维码生成的结果,可以通过这个回调来间接的判断当前是否是加载中状态,来进行自定义的loading效果处理,因此这个功能实际上也不是必须的 同时在实现这个功能时,还需要考虑存量用户的向下兼容问题 (部分用户可能已经`props.showLoading: true`且自定义了`props. loadingText`) 当然如果组件里内置loading,使用时相对来说还是会更方便一些,后续如果有更多的人参与讨论,有同样的需求的话,我会再来跟进这个功能的实现
1. 在setup下 const pageInfo = ref({}), 然后在 onload 里 pageInfo.value = useInit(); 2. 在你需要用到的时候再从 useInit 里解构 这个问题本质上是js作用域相关,可以去补充了解一下相关知识
所用到的技术都链接到了对应仓库或官方文档,直接参考对应的介绍应该基本可以上手,或者具体你有哪些是不了解的呢,可以交流一下
本项目使用 npm, node 16.x,删除依赖重新安装试试看呢
不同页面的style配置选项中可能还会有各自不同的配置,如果想要纯命令行来创建的话意味着需要同时需要支持除了名字外的其他配置项,例如: ```shell npm run addPage -- name=test navigationBarTitleText=测试页 enablePullDownRefresh=true ``` 其中有两个注意点: 1. 参数需要在 `--` 后面添加,这样才可以被 `process.argv` 正常捕获解析 2. 对于例如 `enablePullDownRefresh` 这样配置项类型为 `Boolean` 的还需要特殊处理一下后写入真正的配置中(Number类型的同理)。 个人会觉得这样实现的话,其他人了解这个工具时的学习成本会变得更高,并且会失去现在支持的批量添加页面的能力,可以暂时待定看一下更多人的想法和意见。