第2章:服务端渲染Nuxt4框架

使用Nuxt搭建项目

Nuxt3是一个基于Vue的服务端渲染框架,支持Vue3、TS

方法一

通过nuxt搭建项目

  • 安装:
npx nuxt init nuxt-app 

下载依赖:

yarn

方法二

将文件拷贝到本地文件夹,如何用编译器打开这个文件,然后在终端使用yarn安装文件

Nuxt4项目文件和页面布局

版本使用node 20.19.0版本。

nuxt的官方网站是:https://nuxt.com/

.gitignore   		// 忽略不需要git维护的文件
.nuxt						// 自动生成的目录,其他文件夹的引入配置
.npmrc    	 		// 兼容部分依赖包
public       		// 放置静态图片
nuxt.config.ts  // nuxt配置文件
LICENSE 				// gitee认证文件
app.vue					// 页面入口文件
components			// 组件文件夹
layout					// 页面的布局
pages						// 页面文件夹

使用命令行中使用 yarn dev 打开文件

注意:

当我们有pages文件夹的话必须要有index.vue,否则需要删除pages文件夹。

当我们使用nuxt框架是不需要自己配置路由的。直接使用<NuxPage />相当于我们路由的<router-view>,在pages文件夹中定义页面文件,就可以实现切换。在其pages目录下面添加不一样的vue文件就可以切换不一样的路径。

页面布局

在app.vue里面开发,NuxtLayout使用公共组件

<template>
    <NuxtLayout>
      <NuxtPage />
    </NuxtLayout>
</template>

在app\layouts\default.vue里面编写以下代码

<template>
  <div>
    头部
    <slot />
    底部
  </div>
</template>

<script setup>

</script>

<style scoped lang=''>

</style>

Nuxt4公共组件和路由的使用

组件的定义和使用

我们不需要直接引入使用,而是可以创建多层文件夹进行套用,如下图,Banner文件夹中还套用了一个Chil的文件夹,这样我们就可以使用BannerChild标签来引入Child.vue里面的文件。

路由

路由我们可以使用声明式的路由方式<nuxt-link to="/about">跳转去关于页面</nuxt-link>,使用nuxt-link标签实现跳转。

也可以使用函数式的路由方式<div @click="navigateTo('/')">跳转去首页</div>,使用@click标签里面用navigateTo方法实现页面的跳转。

路由传参,声明式:  <nuxt-link to="/about?data=我是首页的数据">跳转去关于页面</nuxt-link>

路由传参,函数式: <div @click="navigateTo('/?data=我是关于的数据')">跳转去首页</div>

我们可以使用useRouter().query().data取到其传递的属性,其中的data是你定义的值。

函数式也可以使用以下方法:

<div @click="navigateTo({
      path:'/',
      query:{data:'我是关于的数据'}
    })">
    跳转去首页
</div>

嵌套路由

Nuxt+Node项目样式的SSR

启动nuxt-app和seo-serve项目

将nuxt-app的index.vue文件该写为以下格式

<template>
  <div>  
    {{ data }}
  </div>
</template>

<script setup>
import { ref } from 'vue';
const data = ref('')
const resData = await useFetch('http://127.0.0.1:8081/test')

console.log(resData)
</script>

<style scoped>
</style>

进行浏览器调试,发现其数据在data.value.data下面

最后将data.value=resData.data.value.data

右键查看网页源代码发现,里面有对应的名称

useFetch用法

// get
useFetch('url',{
  method:"get",
  params:{id:1}
)

//post
useFetch('url',{
  method:"post",
  params:{id:1}
)

在seo-seve的app.js里面添加以下内容

在nuxt-app的index.vue里面添加以下内容

启动项目查看控制台,发现调用成功

useHead

我们可以通过useHead设置SEO,来添加我们网站被搜索引擎增加的排名。

我们要改变app.vue文件,使用useHead来添加我们的meta里面的descriptionkeywords关键词。

<template>
    <NuxtLayout>
      <NuxtPage />
    </NuxtLayout>
</template>


<script setup>
useHead({
  title:'在线教育平台',
  meta:[
    {    name:"description",content:"在线教育平台官网"},
    {    name:"keywords",content:"在线教育,孩子学习的好帮手"},
  ],
});
</script>

<style scoped>

</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值