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

news2024/11/14 15:22:55

title: Nuxt框架中内置组件详解及使用指南(三)
date: 2024/7/8
updated: 2024/7/8
author: cmdragon

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

categories:

  • 前端开发

tags:

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

2024_07_08 16_33_38.png

freecompress-cmdragon_cn.png

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

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框架中内置组件详解及使用指南(二) | 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1908173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

平安银行秋招攻略,考试内容详解

平安银行秋招简介 在众多的银行招聘中&#xff0c;平安银行的招聘难度相对较低&#xff0c;根据考生的反馈情况来看&#xff0c;仔细的进行准备&#xff0c;平安银行上岸并不是难题&#xff0c;那么平安银行的秋招何时开始&#xff1f; 平安银行的秋招开始时间相对较晚&#…

dependencyManagement的作用、nacos的学习

使用SpringCloudAlibaba注意各组件的版本适配 SpringCloudAlibaba已经包含了适配的各组件&#xff08;nacos、MQ等&#xff09;的版本号&#xff0c;也是一个版本仲裁者&#xff0c;但是可能已经有了父项目Spring-Boot-Starter-Parent这个版本仲裁者&#xff0c;又不能加多个父…

.hmallox勒索病毒:全面防御策略

引言 近年来&#xff0c;随着网络技术的飞速发展&#xff0c;勒索病毒成为网络安全领域的一大威胁&#xff0c;其中.hmallox勒索病毒以其高度的隐蔽性和破坏性&#xff0c;尤为引人注目。这种病毒通过加密用户计算机中的重要文件&#xff0c;并以支付赎金作为解密条件&#xff…

LeetCode——第 405 场周赛

题目 找出加密后的字符串 给你一个字符串 s 和一个整数 k。请你使用以下算法加密字符串&#xff1a; 对于字符串 s 中的每个字符 c&#xff0c;用字符串中 c 后面的第 k 个字符替换 c&#xff08;以循环方式&#xff09;。 返回加密后的字符串。 示例 1&#xff1a; 输入&…

docker部署onlyoffice,开启JWT权限校验Token

原来的部署方式 之前的方式是禁用了JWT&#xff1a; docker run -itd -p 8080:80 --name docserver --network host -e JWT_ENABLEDfalse --restartalways onlyoffice/documentserver:8 新的部署方式 参考文档&#xff1a;https://helpcenter.onlyoffice.com/installation/…

【专项刷题】— 位运算

常见类型介绍&#xff1a; & &#xff1a;有 0 就是 0 | &#xff1a;有 1 就是 1 ^ &#xff1a;相同为 0 &#xff0c;相异为 1 或者 无进位相加给定一个数确定它的二进制位的第x个数是0还是1&#xff1a;将一个数的二进制的第x位改成1&#xff1a;将一个数的二进制的第x…

【Java探索之旅】多态:向上下转型、多态优缺点、构造函数陷阱

文章目录 &#x1f4d1;前言一、向上转型和向下转型1.1 向上转型1.2 向下转型 二、多态的优缺点2.1 多态优点2.2 多态缺陷 三、避免避免构造方法中调用重写的方法四、好的习惯&#x1f324;️全篇总结 &#x1f4d1;前言 在面向对象编程中&#xff0c;向上转型和向下转型是常用…

Redis组建哨兵模式

主172.17.60.131 从172.17.60.130、172.17.60.129 redis部署 [rootlocalhost app]# tar xf redis-6.2.9.tar.gz [rootlocalhost app]# cd redis-6.2.9/ [rootlocalhost redis-6.2.9]# make MALLOClibc [rootlocalhost redis-6.2.9]# make install PREFIX/usr/local/redis…

[ICS] Modbus未授权攻击S7协议漏洞利用

工业控制系统历史 在可编程逻辑控制器(plc)成为标准之前&#xff0c;工厂车间自动化是通过机架和机架的工业继电器&#xff0c;气动柱塞计时器和电磁计数器来控制电机的启动和停止&#xff0c;阀门的打开以及其他与控制相关的过程交互。运行这种设置的控制程序根本不是程序&am…

鲁能巴蜀中学洛谷团队

鲁能巴蜀中学洛谷团队出错了 - 洛谷https://www.luogu.com.cn/team/76926

案例精选 | 聚铭综合日志分析系统为江苏省电子口岸构建高效安全的贸易生态

江苏省电子口岸有限公司&#xff0c;成立于2009年&#xff0c;由江苏省贸促会携手南京海关、江苏检验检疫局及江苏海事局等部门共同出资组建。公司承载着推动江苏乃至长三角地区国际贸易便利化的重大使命&#xff0c;致力于打造一个集先进性、创新性、高效性于一体的电子口岸综…

学习笔记——动态路由——OSPF(认证)

十二、OSPF邻居认证 1、OSPF邻居认证概述 链路是路由器接口的另一种说法&#xff0c;因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库&#xff0c;生成最短路径树&#xff0c;每个OSPF路由器使用这些最短路径构造路由表。 OSPF认…

vue3自自定义插件注册全局事件

一. 首先在components中定义自定义组件 二. 然后在components下建立一个index.ts文件 index.ts中的代码如下 // 引入项目中全部的全局组件 import SvgIcon from ./SvgIcon/index.vue import pagination from ./pagination/index.vue // 全局对象 const allGloablComponen…

一文清晰了解HTML——简单实例

想要仿照该页面编写HTML代码&#xff1a; 在vscode中输入&#xff01;自动生成默认模板&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevic…

vite工程化开发配置---持续更新

vite支持tsx开发 根据之前写的文章vue3vitetseslintprettierstylelinthuskylint-stagedcommitlintcommitizencz-git里面tsconfig配置了jsx相关选项&#xff0c;但是想要vite能够识别我们还需要配置一下 安装vitejs/plugin-vue-jsx pnpm i -D vitejs/plugin-vue-jsxvite.confi…

Linux系统编程——线程控制

目录 一&#xff0c;关于线程控制 二&#xff0c;线程创建 2.1 pthread_create函数 2.2 ps命令查看线程信息 三&#xff0c;线程等待 3.1 pthread_join函数 3.2 创建多个线程 3.3 pthread_join第二个参数 四&#xff0c;线程终止 4.1 关于线程终止 4.2 pthread_exit…

为什么KV Cache只需缓存K矩阵和V矩阵,无需缓存Q矩阵?

大家都知道大模型是通过语言序列预测下一个词的概率。假定{ x 1 x_1 x1​&#xff0c; x 2 x_2 x2​&#xff0c; x 3 x_3 x3​&#xff0c;…&#xff0c; x n − 1 x_{n-1} xn−1​}为已知序列&#xff0c;其中 x 1 x_1 x1​&#xff0c; x 2 x_2 x2​&#xff0c; x 3 x_3 x…

MathType7.4.6.8最新免费下载,数学表达神器来袭!

大家好啊&#xff0c;我是爱分享的小能手&#xff01;今天要给大家安利一款神奇的工具——MathType7.4免费版本。这不仅仅是一个简单的数学公式编辑器&#xff0c;而是你学术写作和数学研究的强大助手&#xff0c;简直是数学爱好者的“瑞士军刀”&#xff01; MathType最新mac…

前端面试题17(js快速检索方法详解)

在前端JavaScript中&#xff0c;快速检索数据通常涉及到数组或对象的搜索。这里我会介绍几种常见的快速检索方法&#xff0c;并提供相应的代码示例。 1. 数组的find和findIndex方法 find: 返回数组中满足条件的第一个元素的值。findIndex: 返回数组中满足条件的第一个元素的索…

ASAN排查程序中内存问题使用总结

简介 谷歌有一系列Sanitizer工具&#xff0c;可用于排查程序中内存相关的问题。常用的Sanitizer工具包括&#xff1a; Address Sanitizer&#xff08;ASan&#xff09;&#xff1a;用于检测内存使用错误。Leak Sanitizer&#xff08;LSan&#xff09;&#xff1a;用于检测内存…