init Error 解决方案

报错

PS C:\dev\nuxt> npx nuxi@latest init my-app
Nuxi 3.6.5                                                                                                    15:49:24

 ERROR  Error: Failed to download template from registry: fetch failed                                        15:49:24

解决方案

git clone -b v3 https://github.com/nuxt/starter.git <名称>

文件夹式Route命名

更改app.vue内容

<template>
  <div>
    <!-- <NuxtWelcome /> -->
    <NuxtPage />
  </div>
</template>

新建文件夹

mkdir ./pages

创建一个测试用的index.vue作为“/”路由

<!-- ./pages/index.vue -->
<template>
    <h1>This is index vue!</h1>
</template>

完成!你的第一个SSR网站就开始运行了

查看网页源代码你就会发现SSR的功劳

路由跳转

新建一个about.vue用于测试

<!-- ./pages/about.vue -->
<template>
    <h1>About Page</h1>
</template>

更改index.vue

<!-- ./pages/index.vue -->
<template>
    <nuxt-link to="/about">Go to about</nuxt-link>
    <h1>This is index vue!</h1>
</template>

此时你就可以通过点击链接跳转页面了

尝试build 和 preview

使用build和preview命令就行了

npm run build

npm run preview

动态路由

添加方括号

文件名或者文件夹名称里面包含了方括号,它们将被转换为动态路由参数。

pages/
--- index.vue
--- detail-[id].vue

获取动态参数

<template>
  {{ $route.params.id }}
</template>

缺点:不好看,不符合规范:解决方案

创建一个文件夹包起来即可

pages/
--- index.vue
--- detail/
------[id].vue

嵌套路由

如果存在目录和文件同名,就制造了嵌套路由。比如下面目录结构:

pages/
--- detail/
------[id].vue
--- detail.vue
--- index.vue

会有下面的效果

{
  path: '/detail',
  component: '~/pages/detail.vue',
  children: [
    {
      path: '/:id',
      component: '~/pages/detail/[id].vue'
    }
  ]
}