title: Nuxt框架中内置组件详解及使用指南(三)

date: 2024/7/8

updated: 2024/7/8

author: cmdragon

excerpt:

摘要:“Nuxt 3框架中与组件的深度使用教程,包括如何使用这两个组件进行页面导航和加载指示的自定义配置与实战示例。”

categories:

  • 前端开发

tags:

  • Nuxt3
  • 组件
  • NuxtLink
  • 导航
  • 链接
  • 加载
  • 自定义

扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长

Nuxt 3 中<NuxtLink>组件的使用指南与示例

NuxtLink 是 Nuxt.js 框架提供的一种组件,用于在 Vue.js 应用程序中创建链接。它结合了 Vue Router 的强大功能与 HTML<a>

标签的简洁性,使得在 Nuxt.js 应用中创建内部和外部链接变得轻而易举。NuxtLink

组件能够智能地处理链接的优化,如预加载、默认属性等,为开发者提供了一种高效、灵活的链接解决方案。

如何使用 NuxtLink?

在 Nuxt.js 应用中,使用 NuxtLink 组件创建链接非常简单。只需要将<NuxtLink>标签包裹在你想要链接的文本或内容上,然后指定to

属性即可。下面是一个创建内部链接的示例:

<template>
<NuxtLink to="/about">
关于页面
</NuxtLink>
</template>

对于外部链接,只需将链接地址作为to属性的值即可:

<template>
<NuxtLink to="https://nuxtjs.org">
Nuxt 网站
</NuxtLink>
</template>

NuxtLink 的高级属性与功能

NuxtLink 组件提供了丰富的属性来增强链接的交互性和功能:

  • target属性:允许指定链接在新标签页中打开,如target="_blank"
  • rel属性:用于设置链接的 rel 属性,如rel="noopener noreferrer",适用于外部链接。
  • noRel属性:当链接需要外部链接的行为但不需要 rel 属性时,可以使用此属性。
  • activeClassexactActiveClass:用于自定义活动链接和精确活动链接的类,帮助实现更丰富的视觉效果。
  • replace属性:控制链接点击时是否替换当前页面历史记录。
  • ariaCurrentValue属性:用于设置活动链接的 aria-current 属性,提高无障碍访问性。
  • external属性:强制将链接视为外部链接或内部链接。
  • prefetchnoPrefetch:控制是否为即将进入视口的链接预加载资源。
  • prefetchedClass:应用于已预加载链接的类。
  • custom属性:允许完全自定义链接的渲染方式和导航行为。

覆盖默认值

如果你希望自定义 NuxtLink 的某些行为,可以通过创建自定义组件并使用defineNuxtLink函数来实现。这使得你可以根据特定需求调整链接的默认设置。

示例代码:创建自定义链接组件

// components/MyNuxtLink.vue
export default defineNuxtLink({
componentName: 'MyNuxtLink',
externalRelAttribute: 'noopener', // 自定义外部链接的 rel 属性
activeClass: 'my-active-class', // 自定义活动链接类
exactActiveClass: 'my-exact-active-class', // 自定义精确活动链接类
prefetchedClass: 'my-prefetched-class', // 自定义预加载链接类
trailingSlash: 'remove', // 自定义尾部斜杠行为
})

完整示例:

  1. 项目结构- 你的 Nuxt.js 项目应该有以下的文件和目录结构:
my-nuxt-app/
├── components/
│ └── MyNuxtLink.vue
├── pages/
│ ├── index.vue
│ └── about.vue
├── nuxt.config.js
└── package.json
  1. 创建自定义链接组件(components/MyNuxtLink.vue):
<template>
<NuxtLink
:to="to"
:target="target"
:rel="rel"
:class="{'my-active-class': isActive, 'my-exact-active-class': isExactActive}"
>
<slot></slot>
</NuxtLink>
</template> <script>
export default defineNuxtLink({
componentName: 'MyNuxtLink',
externalRelAttribute: 'noopener noreferrer',
activeClass: 'my-active-class',
exactActiveClass: 'my-exact-active-class',
prefetchedClass: 'my-prefetched-class',
trailingSlash: 'remove'
});
</script> <style>
.my-active-class {
color: red;
} .my-exact-active-class {
font-weight: bold;
}
</style>
  1. 首页(pages/index.vue):
<template>
<div>
<h1>欢迎来到首页</h1>
<MyNuxtLink to="/about">关于页面</MyNuxtLink>
<MyNuxtLink to="https://nuxtjs.org" target="_blank" external>访问 Nuxt.js 官网</MyNuxtLink>
</div>
</template> <script>
export default {
components: {
MyNuxtLink: () => import('~/components/MyNuxtLink.vue')
}
}
</script>
  1. 关于页面(pages/about.vue):
<template>
<div>
<h1>关于我们</h1>
<MyNuxtLink to="/">返回首页</MyNuxtLink>
</div>
</template> <script>
export default {
components: {
MyNuxtLink: () => import('~/components/MyNuxtLink.vue')
}
}
</script>
  1. 配置文件(nuxt.config.js):
export default {
components: true, // 启用自动导入组件
// 其他配置...
}
  1. 启动项目- 在项目根目录下运行以下命令启动开发服务器:
npm run dev

打开浏览器并访问http://localhost:3000,你应该能看到首页,并且可以通过自定义的 MyNuxtLink 组件导航到“关于页面”或者打开新标签页访问

Nuxt.js 官网。

Nuxt 3 中<NuxtLoadingIndicator>组件的使用指南与示例

Nuxt Loading Indicator 是 Nuxt.js 应用程序中一个实用的组件,用于在页面加载或导航时显示加载进度条。这不仅提升用户体验,还能为用户显示应用程序正在执行的操作,从而减少不确定性。

如何使用 Nuxt Loading Indicator?

在 Nuxt.js 应用中,要使用 Nuxt Loading Indicator,首先需要在你的app.vue或任何布局文件中引入并添加此组件。以下是一个简单的示例:

<template>
<NuxtLayout>
<div>
<NuxtLoadingIndicator /> <!-- 这里是加载指示器的位置 -->
<NuxtPage />
</div>
</NuxtLayout>
</template>

Nuxt Loading Indicator 的关键属性

  1. color:设置进度条的颜色。默认为黑色,你可以根据需要调整颜色。
  2. height:进度条的高度,以像素为单位。默认值为 3px。
  3. duration:进度条显示的持续时间,以毫秒为单位。默认为 2000 毫秒。
  4. throttle:进度条出现和隐藏的节流时间,以毫秒为单位。默认为 200 毫秒。

如何自定义 Nuxt Loading Indicator

Nuxt Loading Indicator 支持通过默认插槽传递自定义 HTML 或组件,允许你根据特定需求定制进度条的外观和行为。

示例代码

假设你想要创建一个更自定义的进度条,可以使用以下代码:

<template>
<NuxtLayout>
<div>
<NuxtLoadingIndicator
:color="customColor"
:height="customHeight"
:duration="customDuration"
:throttle="customThrottle"
>
<!-- 自定义内容 -->
<div class="custom-loading-text">加载中...</div>
</NuxtLoadingIndicator>
<NuxtPage />
</div>
</NuxtLayout>
</template> <script>
export default {
data() {
return {
customColor: '#FF5733', // 自定义颜色
customHeight: 5, // 自定义高度
customDuration: 1500, // 自定义持续时间
customThrottle: 500, // 自定义节流时间
};
},
};
</script> <style scoped>
.custom-loading-text {
color: #fff;
font-size: 18px;
text-align: center;
margin-top: 50px;
}
</style>

完整示例:

余下文章内容请点击跳转至 个人博客页面 或者 扫码关注或者微信搜一搜:编程智域 前端至全栈交流与成长,阅读完整的文章:Nuxt框架中内置组件详解及使用指南(三) | cmdragon's Blog

往期文章归档:

Nuxt框架中内置组件详解及使用指南(三)的更多相关文章

  1. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

  2. python基础-内置函数详解

    一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...

  3. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. python3 内置函数详解

    内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小. >>> abs(-25) 25 >&g ...

  5. 序列内置方法详解(string/list/tuple)

    一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...

  6. Python内置方法详解

    1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名. 可以查看所有的字符串的内置方法,如: 1> count ...

  7. for循环与内置方法详解

    ''' for循环与内置方法详解 ''' # 循环:重复(按照某种规律的)做一件事情 # lt = [1, 2, 3, 4] # # ind = 0 # # while True: # print(l ...

  8. Perl中的特殊内置变量详解

    #!/usr/bin/perl -w @array = qw(a b c d); foreach (@array) { print $_," "; } 例子的作用就是定义一个数组并 ...

  9. JSP内置对象详解

    jsp中内置对象:request.response.session.applecation.out.pagecontesx.config.page.exception.cookie 1.request ...

  10. Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档

    前言 基本环境 Django版本:1.11.8 Python版本:3.6 OS: win10 x64 本文摘要 提供了常用的Django内置过滤器的详细介绍,包括过滤器的功能.语法.代码和效果示例. ...

随机推荐

  1. 如果win报错无法加载文件 C:\Users\xx\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本

    点击查看代码 Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

  2. zabbix第二篇

    常用命令 查看版本 [root@zabbix001 xx]# zabbix_server -V zabbix_server (Zabbix) 4.2.8 Revision cb5d5b10f4 28 ...

  3. 为什么不推荐在Spring Boot中使用@Value加载配置

    @Value注解相信很多Spring Boot的开发者都已经有接触了,通过使用该注解,我们可以快速的把配置信息加载到Spring的Bean中. 比如下面这样,就可以轻松的把配置文件中key为com.d ...

  4. 一些常用但是不好记的css样式

    设置滚动条样式 /*定义滚动条宽高及背景,宽高分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 10px; /*对垂直流动条有效*/ height: 10px; ...

  5. salesforce零基础学习(一百三十九)Admin篇之Begins/Contains/Starts With 是否区分大小写

    本篇参考: https://help.salesforce.com/s/articleView?id=sf.customize_functions_begins.htm&type=5 http ...

  6. .NET Framework 4.7.2下 Hangfire 的集成

    参考资料: 开源的.NET定时任务组件Hangfire解析:https://www.cnblogs.com/pengze0902/p/6583119.html.Net Core 简单的Hangfire ...

  7. Spring Security 初学

    Spring Security 初学 声明:本篇文章无源码解析,属于初学范围,本文采用SpringBoot+thymeleaf的项目. 实现 SpringSecurity 分三步走 继承 WebSec ...

  8. Android 13 - Media框架(32)- ACodec(八)

    关注公众号免费阅读全文,进入音视频开发技术分享群! 拖了好久都没有更新,前面写的东西都有些忘了,回过头来再看之前写的内容,觉得有很多地方写的不好,或者说现在又有了新的理解,想要重新修改但是需要修改的内 ...

  9. 通过计算巢轻松部署 Walrus

    概述 Walrus 是一个用于管理和部署应用程序的平台,它提供了一个集中化的管理界面,使用户能够轻松地管理应用的生命周期,包括创建.配置.部署.监控和维护应用.Walrus 还提供了一些高级功能,如应 ...

  10. 领域驱动设计(Domain-Driven Design,简称DDD)【简介 个人学习笔记】

    找到了第 1 篇资料:领域驱动设计详解:是什么.为什么.怎么做? - 知乎 找到了第 2 篇资料:领域驱动架构(DDD)建模中的模型到底是什么? - 知乎 找到了第 3 篇资料:一文看懂DDD 领域驱 ...