Appearance
🔥 (#73) Nuxt 内容查询
August 2022
Hey!
这个夏天对我来说有点忙,我终于完成了所有的婚礼和旅行。
现在我有时间来继续输出 Vue 的内容。
在接下来的几个月里,我将有一些令人兴奋的事情 - 这将是史诗般的!
我现在真不能说太多。
是的,我还在缓慢更新 Clean Components,这是一个不同的项目。
你还要等等
现在,我们继续 Vue Tips 内容。
—Michael
p.s. If you love these newsletters I send out, please share it with a co-worker or friend who you think will also enjoy it! Thanks!
🔥 从写接口 Interface 入手
在编写可复用组件时候,不要立刻写代码实现它。
相反,花一些时间分析出你会用到的组件。花一些时间思考组件和应用之间的交互接口信息。
提前几分钟的准备,后续可以节省很多时间和风险。
开始之前你可以问自己几个问题:
- 组件应该接收什么参数?
- 你想包含什么选项?
- 组件想返回什么?
- 我们想要使用动态返回值吗?
- 如何达到最小可用版本,如何快速实现?
- 最终版本会什么样?我们能做哪些简单的准备?
当然,你的组件会随着发展发生变化。
但一开始就朝着正确的方向开始会更容易。
🔥 Nuxt 的内容查询
Nuxt Content 2 给我们带来了一种 queryContent 的方法查询内容:
// composables/useArticles.js
export default () =>
queryContent("articles")
.where({
// 可选字段,可能为 true 或者不存在
ghost: { $ne: true },
newsletter: { $ne: true },
// 不要渲染未来计划发布的文章
date: { $lte: new Date() },
})
.only(["title", "path", "description", "date", "tags"])
.sort({ date: -1 })
.find();
在这段代码里,我给博客编写了一段可复用的逻辑 useArticles,可以抓取 content/articles 文件夹下的所有内容。
queryContent 函数是一段查询逻辑,展示了如何获取数据。我们接着看是如何使用它的。
首先,我们使用 where 语句来筛选出我们不希望出现的文章。有时候我会在发布网站之前添加一篇文章。
我设定了 date 条件筛选掉未来的日期,来获取今天之前的文章:
date: {
$lte: new Date();
}
之后,有些文章是我每周的周刊内容,还有一些内容是想归入 articles 文件夹但还不想发布的内容。
我使用 frontmatter 字段来指定:
---
newsletter: true # This is a newsletter
---
---
ghost: true # 表示不想出现
---
第三步,我使用 only 语句来抓取我们所需要的字段。默认清空下,queryContent 方法会返回很多数据,包含了文章本身,返回的数据量太大了。
最后,我已经猜到了,使用 sort 语句来对文章进行日期排序。
queryContent 方法有更多选项,可以进一步阅读 文档。
📜 入门介绍 Vue3 中的 Script Setup
在 Vue3 中使用 script setup 会减少书写的代码。
但和使用 setup 相比还是有一些不同。
Anthony Konstantinidis 写的文章介绍了所有你应该知道的 Vue3 script setup 细节。
进一步阅读:The 101 guide to Script Setup in Vue 3
💬 没有错误
"Testing can only prove the presence of bugs, not their absence." —Edsger W. Dijkstra
“测试只能证明存在 bug,而不是没有 bug。” —Edsger W. Dijkstra
🧠 间隔重复:我最喜欢的 Git 命令
想要长时间牢牢记住某些事情,最好方式就是定期回顾,逐渐增加回顾的间隔 👨🔬
实际上,记住这些 tips 比发呆有用得多,这是几周前的一个 tip 可以唤起你的记忆。
介绍一些我最喜欢的 git 命令,或许你也是如此:
我经常在不同分支之间切换,敲命令很麻烦:
# 切换到上一个分支
git checkout -
又是我添加了一些临时文件,但我发现不是真的需要他们:
# 移除所有没有被追踪的文件
git clean
或者搞乱了代码,需要重新开始:
# 撤销所有更改,回到上次提交
git reset --hard
Github 会获取 PR 分支上的提交,合并时候可以把他们合并到一条记录。或者想合并一个分支,但还没准备提 PR:
# 压缩所有提交到一条提交记录
git merge --squash <branch>
git commit
p.s. I also have two courses: Reusable Components and Clean Components
来源
原文 https://michaelnthiessen.com/weekly-073-august-10/
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。