Failure is part of learning. we should never give up the struggle in life

来了来了 你慢慢导哈项目已部署上线

项目背景

无时无刻都要与文档为伴,没有文档我狗屁不是 ╮(๑•́ ₃•̀๑)╭

尤大曾说:“救赎之道就在文档之中”

因为时常要去翻阅文档,但是呢某度搜东西你们懂得,广告满天飞啊!

所以这个小项目就诞生了,

我将前端一些常用的文档和自己常用的网站整合在了这个项目里

当然了兄弟们肯定也有很多好东西,不过我没有能力去吧大家的好东西都收集在一起

所以,理所当然的做了自定义的模块,这样兄弟们就能使用的时候把自己的小网站也丢进去了

这可比书签安全了,访问地址只有天知地知,你知我知,嘿嘿嘿(//▽//)

不过呢,数据是保存在浏览器的,所以清理垃圾或浏览器记录时可能会导致数据丢失哦

不到迫不得已要清理的时候,请不要勾选清理 cookie 等数据的选项哦

这就去探索

前往探索

github地址

预览图

首页

自定义页

添加自己的小网站

哈哈哈不好意思把歌词截进去了,才看到,那就不改了哈( ╯-_-)╯┴—┴

咱简单说一下使用规则吧

  • 添加:需要将title和url都要输入,不可为空,title也不可以重复哦
  • 修改:需要title来检索,但是只会修改该title下的url内容,都不可为空
  • 删除:只需要指定title即可删除对的数据了,title不可为空,url可不填

好了介绍就到这里了,下面是这次体验的一些小坑做个简单记录
可恶我好菜,踩坑踩麻了 ╥﹏╥

踩坑实录

首当其冲的路由

因为nuxt的路由是自动生成的,所以第一次接触看起来会很迷啊

简单来时就是在 pages 文件夹内创建一个 .vue 文件就会生成该文件的路由

但是呢,index.vue 是特殊的,当然了就和文件名一样他就是主页

比如说现在我需要一个about的路由页面,你可选择在 pages 文件夹直接创建 about.vue

或者创建一个 about 文件夹,然后在文件夹的内部创建 index.vue 这样也是可以的

然后就是嵌套路由子路由了 ,还是上面的例子 给about创建子路由,只需要在有index文件的情况下创建一个 about.vue

可以看文档示例:戳这里

而我需要的是 pages 下的 index 的子路由,那么就要创建一个名字是 index 的文件夹

坑就在这里,如果去访问子路由的话,就要在这个 index 里写好 <nuxtpage>,也不知道哪个坑货告诉我是 <nuxt-child/>的

哦,原来是我这个2B ,用的是 nuxt3 看的是 nuxt2 的文档,我......

唉,搜索引擎你在结果里下毒 (;¬_¬)

这个应该不是nuxt的 在用 vue 的 h 函数遇到了

封装弹窗嘛都懂得,但是我的样式的 transform 怎么都不起作用,然后把它改成 translate 就好了....(」゜ロ゜)」

好好好我的问题

中间件!!!!

靠,在 nuxt 中路由守卫是 在 middleware文件夹中定义中间件来实现,比如我写了一个名为 gogogo 的ts文件

如果他的完整名字是 gogogo.global.ts 那么他就会成为一个全局的中间件 ,也就是所有的路由都会使用到

但如果是 gogogo.ts 那么就需要在需要的页面 使用 definePageMeta 来调用它,注意哈 layout 中的布局文件是不能用的

什么,你不知道 layout 文件夹是做什么的,那还不快去看文档(戳这里)!

上面 layout 也是踩过的小坑坑,我用了半天都不生效真可恶

好不说这个,继续中间件,这个全局中间件呢他会是最早渲染的,但是呢我有一个需求

我要判断浏览的设备如果是移动端,就给他报错不给继续看了(才不是懒得写移动端适配(•ิ_•ิ),没这个需求谁写项目拿手机看文档啊)

所以引入了一个库是 current-device 可以很方便的判断,但是使用它需要获取到 window 对象,emm

我们渲染中间件的时候 window 还在娘胎里都还没开始发育呢。。所以我就遭到了 window is not found 的狂轰乱炸

终于,万能的文档让我找到了一个方法 process.client 它会在服务端渲染的时候进行判断,当前是不是已经到客户端了

如果不是在客户端那就不会执行里面的逻辑,这太酷了,我立马就带上它去玩

因为 nuxt 做的是 ssr 服务端渲染,所以在服务端跳过后再到客户端使用时,这个判断移动端的功能就能正常使用了就可以拿到
window 了

但是这可恶的开发阶段他仍是服务端渲染啊沃日啊,我后来才知道写的是没问题的,但是你放在开发阶段跑他就是会永远报这个错的

除非你把引入的那句注释后刷新,报另一个错,然后再把注释取消掉再刷新,他就好了.....部署上线是不会有这个问题的

这家伙搞得我又看了好久文档,用 onmounted 用 nuxapp.hook 在dom渲染完成再引入中间件

但都是不行的仅仅因为这个功能的错在开发阶段他就是会爆出......心累找了好久原来不是我写问题(=_=)くそ

至此好像没有什么很烦人的了看看文档就解决了

尤! 伟大,无需多言

发表评论

电子邮件地址不会被公开。 必填项已用*标注