初步学习Nuxt3

2022-06-27 13:00:40 浏览数 (1)

Nuxt3 用于制作ssr 网页 支持vue3 所有的语法,并且支持了TypeScript, vite vue3 composition api ts。SPA单页面应用不能进行SEO优化,SSR应用在服务端进行渲染,渲染完成后返回给客户端,每一个页面有独立的URL对SEO友好。

1.Nuxt3安装

代码语言:javascript复制
初始化函数

  npx nuxi init nuxt3-test

  进入项目

  cd nuxt3-test

  安装依赖包

  npm install

  运行项目

  npm run dev

2.Nuxt3基础目录结构

代码语言:javascript复制
  - .nuxt // 自动生成的目录,用于展示结果

  - node_modules // 项目依赖包存放目录

  - .gitignore // Git的配置目录,比如一些文件不用Git管理就可以在这个文件中配置

  - app.vue // 项目入口文件,你可以在这里配置路由的出口

  - nuxt.config.ts // nuxt项目的配置文件 ,这个里边可以配置Nuxt项目的方法面面

  - package-lock.json // 锁定安装时包的版本,以保证其他人在 npm install时和你保持一致

  - package.json // 包的配置文件和项目的启动调式命令配置 - README.md // 项目的说明文件

  - tsconfig.json // TypeScript的配置文件

3.Nuxt3约定路由,嵌套路由

 根目录下新建pages 然后文件夹里面新建index.vue

 在根目录下app.vue 文件中使用<Nuxtpage>  路由的出口

代码语言:javascript复制
<template>
  <div>
    <NuxtPage></NuxtPage>
  </div>
</template>

 在目录下创建demo1.vue 文件  然后就在index.vue 跳转到demo1.vue 使用NuxtLink 标签

代码语言:javascript复制
<template>
  <div >
    <h1>Index Page</h1>
    <NuxtLink to="/demo1">Demo1.vue</NuxtLink>
  </div>
</template>

 创建一个嵌套路由  

          建立嵌套路由的文件夹(约定大于配置)

         创建和文件夹相同名称的文件(父页面)

    在新建文件夹下任意创建子页面

代码语言:javascript复制
|--pages
|----parent/
|------child.vue
|----parent.vue

  parent.vue  里面引用子页面

代码语言:javascript复制
<template>
  <div class="">Parent Page</div>
  <!-- 子页面的出口-->
  <NuxtChild></NuxtChild>
</template>

<script setup>
import {} from "vue";
</script>

<style scoped></style>

4.Nuxt3动态路由的使用

 但参数传递只要在页面的文件名中用 [ ] 括起来就好了,例如  demo2-[id].vue

代码语言:javascript复制
-| pages/
---| index.vue
---| demo2-[id].vue

   参数接收使用$route.params.id 的形式

 在开发者中常使用的

代码语言:javascript复制
<template>
  <div class="">获取的id:{{ id }}</div>
</template>

<script setup>
import { ref } from "vue";
const route = useRoute();
const id = ref(route.params.id);
</script>

<style scoped></style

 多参数的传递和获取

  如果传递的是两个参数,那么就需要建立一个文件夹在文件夹上使用[ ] 来确定参数 

代码语言:javascript复制
-|  pages/
---| index.vue
---| goods-[name]/
-----| demo2-[id].vue

        页面上获取参数

代码语言:javascript复制
<template>
  <div class="">获取的id:{{ id }}</div>
  <div class="">获取的name:{{ name }}</div>
</template>

<script setup>
import { ref } from "vue";
const route = useRoute();
const id = ref(route.params.id);
const name = ref(route.params.name);
</script>

<style scoped></style

      页面跳转的时候

<NuxtLink to="/goods-shangpin/demo2-38">Demo2.vue</NuxtLink>

seo

0 人点赞