mirror of
https://github.com/pengzhanbo/vuepress-theme-plume.git
synced 2026-04-23 10:58:13 +08:00
@vuepress-plume/plugin-page-collection
这是一个使用了 netlify functions + leancloud 的 VuePress2 插件示例。
- 功能: 进入页面时,记录访问次数,并提供一个 组件展示页面访问次数。
Why ?
-
为什么是在
netlify functions中 连接leancloud,而不是直接在 web客户端中请求leancloud?这是出于数据安全的角度考虑,避免直接在浏览器可见的代码中暴露私密的鉴权信息。
使用方式
(仅示例,本插件未发布到 npm)
-
在 vuepress 配置插件
export default defineUserConfig({ plugins: [ pageCollectionPlugin() ] }) -
在需要做页面记录的路由级组件中引入
<PageCollection>组件<Page> <PageCollection /> </Page> -
在项目根目录 新建
.env文件开发时使用,发布到生产时,需要在 netlify 中配置 环境变量。 同时,需要将
.env文件添加到.ignore中,避免暴露LEAN_CLOUD_APP_ID='your leancloud appId' LEAN_CLOUD_APP_KEY='your leancloud appKey' LEAN_CLOUD_MASTER_KEY='your leancloud masterKey'
效果:
阅读数:99
结构
.
├── database # leancloud-storage
│ └── Page.json # Object Page 在 leancloud控制台中导入即可使用
├── src # 源码
│ ├── client
│ │ ├── clientAppEnhance.ts # 注入全局组件
│ │ ├── components
| | | └── PageCollection.ts # 组件
│ │ └── composables
| | ├── index.ts
| | └── usePageCollection.ts # 请求 functions
│ ├── node
│ │ ├── functions # netlify functions 文件夹
| | | └── page_collection.ts # 连接 leancloud 获取 page数据
│ │ ├── index.ts
│ │ └── plugin.ts # 插件配置
│ └── shared
│ └── index.ts
└── package.json
主要代码说明
请查看源码注释