@nuxtjs/snipcart
如果您喜欢使用此模块,请考虑赞助
如果您正在寻找 Nuxt 2 版本,请使用 1.x 版本
功能
- 基于 Snipcart 接口文档 的完整 TypeScript 支持
- 开箱即用的 Snipcart 文档全面支持
- 借助于 Nuxt 3 的强大功能实现高度定制
快速设置
- 将
@nuxtjs/snipcart依赖项添加到您的项目中
npx nuxi@latest module add snipcart
- 将
@nuxtjs/snipcart添加到nuxt.config.ts的modules部分
export default defineNuxtConfig({
modules: [
'@nuxtjs/snipcart'
],
snipcart: {
publicApiKey: "youkey"
}
})
就是这样!您现在可以在 Nuxt 应用程序中使用 Snipcart 了 ✨
随时查看我们漂亮的 Playground 示例。
useSnipcart
我们尝试不为 Snipcart API 创建太多包装器,这样如果 Snipcart 发生变化,我们就不必维护太多。但您可能会发现其中一些很有用,例如:
- 暴露 Snipcart 实例
- isReady 将定义基本设置已准备好使用,但 Snipcart 尚未加载
- 使用 watch 观察 Snipcart,确保它已准备就绪
- 实时商店订阅
- 实用函数,如 bindProductItem 或 bindProductItemCustom
- 包装器实用函数,分别使用
setLanguage或setCurrency更改语言或货币
由于我们有完整的 TypeScript 支持,请随意使用并阅读所暴露内容的描述。
加载
我们遵循 Snipcart 不同的加载方式。您可以使用 loadStrategy 配置属性控制 JS 的加载。您可以使用 loadCSS 配置属性告诉 Snipcart 不加载 CSS。
如果您异步加载,请注意在加载完成之前,您将无法访问 window.Snipcart 或 useSnipcart 暴露的 snipcart。因此,请调整您的逻辑。请查看 Playground,我们添加了一些注释。
定制
使用 Nuxt,定制 Snipcart 组件变得非常容易。除了自定义 HTML 外,您还可以使用自己的 CSS 类来覆盖 Snipcart 组件。
为此,例如,像 playground 中一样创建 public/snipcart-custom.html。并确保使用 templatesUrl 属性在 Nuxt 配置中添加路径
snipcart: {
templatesUrl: '/snipcart-custom.html',
这之后会传递给 Snipcart,以便它了解要检索哪些文件才能访问它将用于构建 Snipcart 组件的所有模板
Snipcart SDK
正如我们之前提到的,我们默认通过 window.Snipcart 或可组合的 useSnipcart 暴露 Snipcart SDK。因此,您将拥有完全相同的 Snipcart SDK 访问权限。
开发
# Install dependencies
pnpm install
# Develop with the playground
pnpm dev
# Build the playground
pnpm dev:build
# Run ESLint
pnpm lint
# Run Vitest
pnpm test
pnpm test:watch
# Release new version
pnpm release