静态网站生成器Gridsome

本文介绍了静态网站生成器的概念,特别是重点讲解了基于Node.js和Vue.js的Gridsome。内容涵盖Gridsome的安装、页面及路由创建、Collections管理、数据获取、与Strapi集成以及环境变量配置和自动化部署。
摘要由CSDN通过智能技术生成

什么是静态网站生成器

静态网站生成器是使用一系列配置、模板以及数据、生成静态HTML文件及相关资源的工具,也叫预渲染。生成的网站不需要服务器 ,只要放到支持静态资源的 Web Server 或 CDN 上即可运行。

静态网站的好处

  • 省钱:不需要专业的服务器,只要托管静态文件的空间即可
  • 快速:不需要经过后端服务器处理,只传输内容
  • 安全:没有后端程序的执行,更安全

常见的静态网站生成器

  • Jekyll(Ruby)
  • Hexo(Node)
  • Hugo(Golang)
  • Gatsby(Node/React)
  • Gridsome(Node/Vue)

Gridsome 的使用

  1. 全局安装Gridsome

  2. 运行命令gridsome create projectName 创建项目

  3. yarn 安装依赖。
    依赖安装时可能出现下面的错误,原因是由于网络限制有一些资源没有下载下来,使用可以翻墙的VPN即可解决这个问题。
    在这里插入图片描述

  4. yarn develop 开发环境下启动项目
    项目启动之后能看到如下信息,8080端口是开发页面的访问地址,而___explore则是graphql数据查询工具界面。在这里插入图片描述
    在这里插入图片描述

Gridsome页面及路由

页面

gridesome的页面有两种生成方式:

  1. 在/src/pages/文件夹中创建页面组件文件,gridsome的文件系统会自动读取该文件夹中的文件作为页面,并自动生成路由,以文件名为路由。访问根路由时会访问Index.vue页面。
    在这里插入图片描述

  2. 在gridsome.server.js中通过createPage方法创建页面。
    在这里插入图片描述

  3. 页面的meta信息,在组件的metaInfo属性中配置

    <template>
      <Layout>
        <h1>About us</h1>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error doloremque omnis animi, eligendi magni a voluptatum, vitae, consequuntur rerum illum odit fugit assumenda rem dolores inventore iste reprehenderit maxime! Iusto.</p>
      </Layout>
    </template>
    
    <script>
    export default {
          
      metaInfo: {
          
        title: 'About us'
      }
    }
    </script>
    

动态路由

  1. 通过文件系统实现,在文件名中通过"[params]"的方式来定义路由参数,文件系统会自动识别,并生成响应的路由。
    在这里插入图片描述

  2. 在gridsome.server.js中通过createPage方法定义动态路由,可以通过()来使用正则表达式限定路由参数。

    // gridsome.server.js
    module.exports = function (api) {
         
      api.createPages(({
          createPage }) => {
         
        createPage({
         
          path: '/user/:id(\\d+)',
          component: './src/templates/User.vue'
        })
      })
    }
    

Gridsome Collections

Collections时gridsome管理的数据状态的方式。Collections的使用包括数据的获取和在组件中的应用。

  1. 数据的获取:通过在gridsome.server.js的api.loadSource中定义Collection,并向collection中添加数据。 gridsome.server.js在打包之前会执行,并将数据注入到页面,然后根据数据生成静态页面

    // gridsome.server.js
    const<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值