Nuxt框架中内置组件详解及使用指南(二)
title: Nuxt框架中内置组件详解及使用指南(二)
date: 2024/7/7
updated: 2024/7/7
author: cmdragon
excerpt:
摘要:“本文详细介绍了Nuxt 3中和组件的使用方法,包括组件的基本概念、属性、自定义属性、获取引用以及完整示例,展示了如何在Nuxt项目中有效利用这两个组件。
categories:
- 前端开发
tags:
- Nuxt3
- 组件
- Vue
- 前端
- 开发
- 教程
- 代码


扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长
Nuxt 3 中<NuxtPage>组件的使用指南与示例
<NuxtPage>组件用于显示位于pages/目录中的页面。
一、 组件的基本概念
组件是 Nuxt 内置的,它实际上是对 Vue Router 的 <RouterView> 组件的封装。这意味着它承担着根据路由规则来正确显示相应页面内容的重要职责。
二、 组件的属性
name属性- 类型:字符串
- 作用:告诉 RouterView 在匹配的路由记录的组件选项中使用对应名称渲染组件。
- 示例:如果您有多个具有不同名称的页面组件,通过设置
name属性可以准确指定要渲染的组件。
route属性- 类型:
RouteLocationNormalized - 作用:提供已解析的所有组件的路由位置信息。
- 类型:
pageKey属性类型:可以是字符串或函数
作用:控制 组件何时重新渲染。
示例:
- 传递
static键, 组件在挂载时只会渲染一次。
<template>
<NuxtPage page-key="static" />
</template>- 使用基于当前路由的动态键,如
route => route.fullPath。
<NuxtPage :page-key="route => route.fullPath" />- 传递
需要特别注意的是,在使用 pageKey 时,不要使用 $route 对象,因为这可能会在 与 一起渲染页面时引发问题。
此外,pageKey 还可以通过 pages 目录中的 Vue 组件的 definePageMeta 来传递。
三、获取页面组件的引用
要获取 组件的引用,可以通过以下方式:
<template>
<NuxtPage ref="page" />
</template>
<script>
const page = ref()
function logFoo () {
page.value.pageRef.foo()
}
</script>
在上述代码中,我们定义了一个名为 page 的引用,并通过 page.value.pageRef 来访问页面组件的相关方法或属性。
四、自定义属性
组件还支持自定义属性,您可以根据需要向下传递这些属性。并且可以通过 Nuxt 应用的 attrs 来访问这些自定义属性。
例如:
<NuxtPage :foobar="123" />
在模板中可以使用 $attrs.foobar ,或者在脚本中使用 useAttrs().foobar 来获取其值。
完整示例:
步骤 1: 创建一个 Nuxt.js 项目
首先,你需要安装 Node.js 和 npm。然后,你可以使用以下命令创建一个新的 Nuxt.js 项目:
npx create-nuxt-app my-nuxt-project
按照提示完成安装和配置。
步骤 2: 创建一个页面组件
在 pages/ 目录下,创建一个新的页面组件,例如 about.vue:
<template>
<div>
<h1>About Page</h1>
<p>This is the about page.</p>
</div>
</template>
<script>
export default {
name: 'AboutPage'
}
</script>
<style scoped>
/* 在这里添加页面样式 */
</style>
步骤 3: 在页面中使用 <NuxtPage> 组件
现在,我们可以在父组件中使用 <NuxtPage> 来渲染 about.vue 页面。在 pages/index.vue 中添加以下代码:
<template>
<div>
<h1>Welcome to Nuxt.js</h1>
<NuxtPage />
</div>
</template>
<script>
export default {
name: 'IndexPage'
}
</script>
<style scoped>
/* 在这里添加页面样式 */
</style>
在这个例子中,<NuxtPage> 会自动加载并渲染 about.vue 组件,因为 index.vue 是 Nuxt.js 的默认入口页面。
步骤 4: 运行项目并查看结果
在项目根目录下,运行以下命令来启动开发服务器:
npm run dev
打开浏览器并访问 http://localhost:3000,你应该能看到一个欢迎标题和一个由 <NuxtPage> 渲染的关于页面。
Nuxt 3 中<NuxtLayout>组件的使用指南与示例
Nuxt 提供了 <NuxtLayout> 组件来在页面和错误页面上显示布局。
基础用法
首先,让我们看看如何在 app.vue 或 error.vue 中使用 <NuxtLayout> 来激活默认布局。
app.vue 示例:
<template>
<NuxtLayout>
<!-- 页面内容放在这里 -->
<div>这是页面内容</div>
</NuxtLayout>
</template>
在上面的代码中,<NuxtLayout> 组件被用作包裹页面内容的容器。它会自动使用 layouts/default.vue 文件作为布局。
指定布局名称
如果你想要使用自定义的布局,可以通过 name 属性来指定布局名称。
pages/index.vue 示例:
<script setup>
const layout = 'custom'
</script>
<template>
<NuxtLayout :name="layout">
<NuxtPage />
</NuxtLayout>
</template>
在上面的代码中,我们通过一个响应式引用 layout 来指定布局名称为 custom,这会渲染 layouts/custom.vue 文件。
注意: 布局名称会被转换为 kebab-case,所以如果你的布局文件名为 errorLayout.vue,那么在传递给 <NuxtLayout> 时应该使用 error-layout。
传递附加 Props
过渡效果
获取布局组件的 Ref
完整示例
余下文章内容请点击跳转至 个人博客页面 或者 扫码关注或者微信搜一搜:编程智域 前端至全栈交流与成长,阅读完整的文章:Nuxt框架中内置组件详解及使用指南(二) | cmdragon's Blog
往期文章归档:
- Nuxt框架中内置组件详解及使用指南(一) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(十一) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(十) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(九) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(八) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(七) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(六) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(五) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(四) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(三) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(二) | cmdragon's Blog
- Nuxt3 的生命周期和钩子函数(一) | cmdragon’s Blog
- 初学者必读:如何使用 Nuxt 中间件简化网站开发 | cmdragon's Blog
Nuxt框架中内置组件详解及使用指南(二)的更多相关文章
- MYSQL常用内置函数详解说明
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- python基础-内置函数详解
一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...
- JavaWeb学习----JSP内置对象详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- python3 内置函数详解
内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小. >>> abs(-25) 25 >&g ...
- 序列内置方法详解(string/list/tuple)
一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...
- Python内置方法详解
1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名. 可以查看所有的字符串的内置方法,如: 1> count ...
- for循环与内置方法详解
''' for循环与内置方法详解 ''' # 循环:重复(按照某种规律的)做一件事情 # lt = [1, 2, 3, 4] # # ind = 0 # # while True: # print(l ...
- Perl中的特殊内置变量详解
#!/usr/bin/perl -w @array = qw(a b c d); foreach (@array) { print $_," "; } 例子的作用就是定义一个数组并 ...
- JSP内置对象详解
jsp中内置对象:request.response.session.applecation.out.pagecontesx.config.page.exception.cookie 1.request ...
- Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档
前言 基本环境 Django版本:1.11.8 Python版本:3.6 OS: win10 x64 本文摘要 提供了常用的Django内置过滤器的详细介绍,包括过滤器的功能.语法.代码和效果示例. ...
随机推荐
- 1.简单的C语言程序
简单的C语言程序 什么是计算机程序? 什么是计算机语言? 所谓程序,就是一组计算机能识别和执行的指令. 什么是计算机语言? 机器语言(0,1 '低级语言'),汇编语言(符号化 '低级语言'),高级语言 ...
- fastposter 2.5.0 全新发布 一款电商级海报生成器
fastposter 2.5.0 全新发布 低代码海报生成器 fastposter低代码海报生成器,一分钟完成海报开发.支持Java.Python.PHP. Go.JavaScript等多种语言. v ...
- three.js教程4-Group层级模型
1.组对象Group.层级模型-形成树状结构 //创建两个网格模型mesh1.mesh2 const geometry = new THREE.BoxGeometry(20, 20, 20); con ...
- 记录一次安装PIDtoolBox报缺少jvm.dll问题。
背景: 1.在安装PIDtoolBox时,报 安装程序错误 安装程序无法启动JVM. could not find file C:\Users\AdministratorAppData\Local\M ...
- Echarts设置饼状图保证你看的明明白白
简单的饼状图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- uniapp-vue3-oadmin手机后台实例|vite5.x+uniapp多端仿ios管理系统
原创vue3+uniapp+uni-ui跨端仿ios桌面后台OA管理模板Uni-Vue3-WeOS. uniapp-vue3-os一款基于uni-app+vite5.x+pinia等技术开发的仿ios ...
- Gin 框架是怎么使用 net http 包的(gin.go)
Gin 框架是基于 Go 语言的标准库 net/http 构建的,它使用 net/http 提供的基础功能来构建自己的高性能 Web 应用框架. 具体来说,Gin 使用 net/http 的以下方面: ...
- 【asp.net】滑块验证码(分享一个从github上下载的源码)
思路: 1. 准备好10张或20张不同规格的图片,按规格分类到不同文件夹,每个文件夹的图片从1开始顺序递增命名,为了随机选择图片. 2.前端提交规格比如200*300,根据规格选择原图,并初始化 ...
- Django模型层的QuerySet对象
def index(request): # 查询数据,返回QuerySet对象books books=Book.objects.filter(id__gte=1) # 打印books, 是一个Quer ...
- 8.19考试总结(NOIP模拟44)[Emotional Flutter·Medium Counting·Huge Counting·字符消除2 ]
在自称善意的之时,即存恶意. 前言 几乎是大暑假的最后一次考试了. 我也迎来了我的第一次报零(雾 T1 Emotional Flutter 解题思路 比较考验思维能力,其实就是区间覆盖问题. 我考场上 ...