Nuxt快速学习开发---Nuxt3视图Views

Views

Nuxt提供了几个组件层来实现应用程序的用户界面 默认情况下,Nuxt 会将app.vue文件视为入口点并为应用程序的每个路由呈现其内容

image.png

应用程序.vue

<template> <div> <h1>Welcome to the homepage</h1> </div> </template>

Page

在nuxt中,页面代表每个特定路由模式的视图。目录中的每个文件pages/代表显示其内容的不同路径。 使用页面,创建pages/index.vue文件并将<NuxtPage />组件添加到app.vue(或删除app.vue默认条目)。

image.png

 
``pages/index.vue <template> <section> <p>这个页面将显示在根路径上,这是page/index页面</p> </section> </template> ``
 

``pages/about.vue <template> <section> <p>这个页面是page/about页面</p> </section> </template> ``

下面我们将通过app.vue来控制进行跳转页面,其中关于, 见下例示代码注释,后续学习nuxt路由将进行更详细介绍。

 

//app.vue
<template><div><!-- 跳转到某个页面 --><div class="page mt-24"><!--通过传递 `to` 来指定链接 --> <!--`<NuxtLink>` 将呈现一个带有正确 `href` 属性的 `<a>` 标签。相当于vue中<router-link to="/">--><NuxtLink to="/">index page</NuxtLink><NuxtLink to="/about">about page</NuxtLink></div><div class="current-page"><div>当前页面:{{ route.name }}</div><div><!-- 路由出口 --> <!-- 路由匹配到的组件将渲染在这里,相当于vue中的<router-view></router-view> --><NuxtPage /></div></div><!-- 当前路由视图,默认pages下index.vue --></div></template><script setup lang="ts">const route = useRoute()</script>

此时运行代码,我们将可以切换路由展示视图。

Components

大多数组件都是用户界面的可重用部分,例如按钮和菜单。在 Nuxt 中,您可以在目录中创建这些组件components/,它们将在您的应用程序中自动可用,而无需显式导入它们。

``components/title.vue
<template><div><h1>我是components/title 页面</h1></div>
</template>
``

此时修改app.vue任意位置添加上< Title />运行,我们将看到components/title.vue将在页面中展示

Layouts

布局是页面的包装器,包含多个页面的通用用户界面,例如页眉和页脚显示。<slot />布局是使用组件显示页面内容的Vue 文件。layouts/default.vue默认情况下将使用该文件。自定义布局可以设置为页面元数据的一部分。我们通过写一个简单的layout布局能很好的理解这一部分内容:

 
-| layouts/
---| default.vue
---| custom.vue
---| layout.vue
 
``layouts/layout.vue layout布局
<template><div><!-- <Button></Button> -->默认layout布局<div><LayoutHeader /><slot /><!-- 布局文件中,布局的内容会加载到 中`<slot />`,而不是使用特殊的组件 --><LayoutFooter /></div></div>
</template>
``
 
``components/layoutFooter.vue 页面底部
<template><div class="footer">-------------------------------------- footer -------------------------------------- </div>
</template>
``
 
``components/layoutHeader.vue  页面头部
<template><div class="footer">-------------------------------------- footer -------------------------------------- </div>
</template>
``

启用默认布局

接下来通过修改app.vue来使用default布局,同样nuxt支持修改页面布局方式

 
``app.vue
<template><div><!-- 跳转到某个页面 --><div class="page mt-24"><!--通过传递 `to` 来指定链接 --> <!--`<NuxtLink>` 将呈现一个带有正确 `href` 属性的 `<a>` 标签。相当于vue中<router-link to="/">--><NuxtLink to="/">index page</NuxtLink><NuxtLink to="/about">about page</NuxtLink></div><Title></Title> <!--使用components/title.vue组件--><!--默认布局,通过:name=“”可以修改布局方式 --><NuxtLayout><div class="current-page"><div>当前页面:{{ route.name }}</div><div><NuxtPage /><!-- 当前路由视图,默认pages下index.vue --></div></div></NuxtLayout> </div></template><script setup lang="ts">const route = useRoute()</script>``

设置另一个布局

可以像这样直接覆盖默认布局:

 
··app.vue
<template><NuxtLayout :name="layout"><NuxtPage /></NuxtLayout>
</template>
<script setup>
const layout = "custom";
</script>

或者,您可以像这样覆盖每页的默认布局:

 
``layouts/custom.vue
<template><div>Some *custom* layout<slot /></div>
</template>
 
``layouts/layout.vue
<template><div>Some *layout* layout<slot /></div>
</template>

动态改变布局可以为布局使用 ref 或计算属性。

 
<template><div><button @click="enableCustomLayout">Update layout</button></div>
</template>
<script setup>
function enableCustomLayout () {setPageLayout('custom')
}
definePageMeta({layout: false,
});
</script>

在每页基础上覆盖布局

如果您正在使用~/pages集成,则可以通过设置layout: false然后使用<NuxtLayout>页面内的组件来完全控制。页面/index.vue布局/custom.vue

 
``layouts/custom.vue
<template><div><header><slot name="header">Default header content</slot></header><main><slot /></main></div>
</template>

Nuxt自定义配置使用的目录结构

除非需要,否则最好坚持使用默认值,nuxt会自动根据设置的命名生成目录结构

 
``nuxt.config.ts
export default defineNuxtConfig({dir: {//自定义Nuxt使用的目录结构,除非需要,否则最好坚持使用默认值。assets: "assets", //静态资源目录 默认: "assets"layouts: "layouts", //布局目录,其中的每个文件都会自动注册为 Nuxt 布局。 默认: "layouts"middleware: "middleware", //中间件目录,其中的每个文件都会自动注册为Nuxt中间件。默认: "middleware"pages: "pages", //将被处理以自动生成应用程序页面路由的目录。 默认: "pages"plugins: "plugins", // plugins 目录,其中的每个文件都会自动注册为 Nuxt 插件。默认: "plugins"public: "public", //dist包含静态文件的目录,可通过 Nuxt 服务器直接访问这些文件,并在生成应用程序时将其复制到文件夹中。 默认: "public"static: "static", //默认: "public"},
})

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GD32F303红枫派使用手册】第二十二节 IIC-IIC OLED显示实验

22.1 实验内容 通过本实验主要学习以下内容&#xff1a; OLED驱动原理 IIC驱动OLED显示操作 22.2 实验原理 OLED模块的驱动芯片为SSD1306&#xff0c;其显存大小总共为 128*64bit 大小&#xff0c;SSD1306 将这些显存分为了 8 页&#xff0c;其对应关系如下所示&#xff1…

Docker 下载与安装以及配置

安装yum工具 yum install -y yum-ulits配置yum源 阿里云源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装Docker 17.03后为两个版本&#xff1a; 社区版&#xff08;Community Edition&#xff0c;缩写为 CE&#x…

基于深度学习的图像识别技术与应用是如何?

基于深度学习的图像识别技术与应用在当今社会中扮演着越来越重要的角色。以下是对该技术与应用的详细解析&#xff1a; 一、技术原理 深度学习是一种模拟人脑处理和解析数据的方式的技术和方法论。在图像识别领域&#xff0c;深度学习主要通过深度神经网络&#xff08;如卷积…

使用 Ubuntu x86_64 平台交叉编译适用于 Linux aarch64(arm64) 平台的 QT5(包含OpenGL支持) 库

使用 Ubuntu AMD64 平台交叉编译适用于 Linux ARM64 平台的 QT5(包含 OpenGL/WebEngine 支持) 库 目录 使用 Ubuntu AMD64 平台交叉编译适用于 Linux ARM64 平台的 QT5(包含 OpenGL/WebEngine 支持) 库写在前面前期准备编译全流程1. 环境搭建2. 复制源码包并解压&#xff0c;创…

内容安全复习 8 - 视觉内容伪造与检测

文章目录 研究背景内容伪造方法虚假人脸生成人脸替换属性编辑表情重演跨模态人脸编辑 伪造检测方法眨眼检测交互式人脸活体检测一些了解方法挑战 研究背景 图像内容篡改造成新闻报道的偏颇易导致社会和公共秩序的不安&#xff0c;对公共安全产生不良影响。 造成的影响&#x…

JVM专题六:JVM的内存模型

前面我们通过Java是如何编译、JVM的类加载机制、JVM类加载器与双亲委派机制等内容了解到了如何从我们编写的一个.Java 文件最终加载到JVM里的&#xff0c;今天我们就来剖析一下这个Java的‘中介平台’JVM里面到底长成啥样。 JVM的内存区域划分 Java虚拟机&#xff08;JVM&…

MySQL 高级 - 第十二章 | 数据库的设计规范

目录 第十二章 数据库的设计规范12.1 为什么需要数据库设计12.2 范式12.2.1 范式简介12.2.2 范式都包括哪些12.2.3 键和相关属性的概念12.2.4 第一范式&#xff08;1st NF&#xff09;12.2.5 第二范式&#xff08;2nd NF&#xff09;12.2.6 第三范式&#xff08;3rd NF&#xf…

【鸿蒙 HarmonyOS】尺寸设置:size/layoutWeight/constraintSize

一、背景 常见尺寸&#xff1a;width&#xff08;宽度&#xff09;、height&#xff08;高度&#xff09;、padding&#xff08;内边距&#xff09;、margin&#xff08;外边距&#xff09; 主要整理下size&#xff08;设置高宽尺寸&#xff09;、layoutWeight&#xff08;对…

Linux之旅: 基础知识点的终极指南

文章目录 1、Linux的目录结构2、ls命令3、管理文件和目录4、linux命令使用细节和技巧5、权限管理基本命令6、搜索命令7、管道符与重定向8、压缩和解压命令9、用户及vim编辑器10、用户和用户组管理一、Linux系统用户账号的基本管理二、Linux系统用户组的管理 1、Linux的目录结构…

RedHat9 | Web服务配置与管理(Apache)

一、实验环境 1、Apache服务介绍 Apache服务&#xff0c;也称为Apache HTTP Server&#xff0c;是一个功能强大且广泛使用的Web服务器软件。 起源和背景 Apache起源于NCSA httpd服务器&#xff0c;经过多次修改和发展&#xff0c;逐渐成为世界上最流行的Web服务器软件之一。…

2024年6月大众点评成都餐饮店铺POI分析22万家

2024年6月大众点评成都餐饮店铺POI共有221002家 店铺POI点位示例&#xff1a; 店铺id CACuqlcUQApLA7Ki 店铺名称 峨眉山豆腐脑(百吉街店) 十分制服务评分 7.3 十分制环境评分 7.5 十分制划算评分 7.1 人均价格 18 评价数量 38 店铺地址 百吉街86号1层 大类 美食 中类…

css布局之flex应用

/*父 100*/.parent-div {/* 这里添加你想要的属性 */display: flex;flex-direction: row; //行justify-content: space-between; //左右对齐align-items: center;flex-wrap: wrap; //换行}/*中 90 10 */.middle-div {/* 这里添加你想要的属性 */display: flex;flex-direction:…

idea2022激活

下载激活脚本 解压后&#xff0c;打开文件夹如下&#xff1a;ja-netfilter.jar 为激活补丁&#xff1a; 复制补丁所在的整个文件夹到硬盘某个位置 将 ja-netfilter补丁所在的整个文件夹移动到电脑上某个位置&#xff0c;我是放到了 D 盘下&#xff1a; &#xff08;路径中不…

Docker配置阿里云加速器(2续)

默认情况下镜像是从docker hub下载&#xff0c;由于docker hub服务器在国外&#xff0c;由于网络原因镜像下载速度较慢&#xff0c;一般会配置镜像加速进行下载 国内镜像加速器有阿里云、网易云、中科大等&#xff0c;本章配置阿里云镜像加速器&#xff0c;速度较快 镜像加速源…

【鸿蒙】 模拟器运⾏

【鸿蒙】HUAWEI DevEco Studio安装-CSDN博客 【鸿蒙】创建第⼀个鸿蒙项⽬-CSDN博客 点击 Tools 菜单下的 Device Manager 点击 Install &#xff0c;安装模拟器 下载模拟器相关的SDK&#xff0c;点击 Finish 选择安装⽬录&#xff0c;点击 New Emulator 选择设备类型&#…

FlinkCDC sink paimon 暂不支持exactly-once写入,而通过 幂等写

幂等写入&#xff1a; 一个幂等操作无论执行多少次都会返回同样的结果。例如&#xff0c;重复的向hashmap中插入同样的key-value对就是幂等操作&#xff0c;因为头一次插入操作之后所有的插入操作都不会改变这个hashmap&#xff0c;因为hashmap已经包含这个key-value对了。另一…

Linux 文件权限

优质博文&#xff1a;IT-BLOG-CN 一、使用者与群组的概念 【1】在Linux里面&#xff0c;任何一个文件都具有[User,Group及Other]三种身份的个别权限&#xff1a;不过需要注意的是root用户&#xff0c;具有所有权限。 ✔ User(文件拥有者)&#xff1a;只有文件拥有者&#xf…

【yolov8语义分割】跑通:下载yolov8+预测图片+预测视频

1、下载yolov8到autodl上 git clone https://github.com/ultralytics/ultralytics 下载到Yolov8文件夹下面 另外&#xff1a;现在yolov8支持像包一样导入&#xff0c;pip install就可以 2、yolov8 语义分割文档 看官方文档&#xff1a;主页 -Ultralytics YOLO 文档 还能切…

Minillama3->sft训练

GitHub - leeguandong/MiniLLaMA3: llama3的迷你版本,包括了数据,tokenizer,pt的全流程llama3的迷你版本,包括了数据,tokenizer,pt的全流程. Contribute to leeguandong/MiniLLaMA3 development by creating an account on GitHub.https://github.com/leeguandong/MiniLL…

Android招聘市场技术要求越来越高,从事三年开发是否应该考虑转行?

UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训&#xff0c;学会这小块知识就能随便找到不错的工作了。 不过很显然现在远远不够了&#xff0c;拒绝无休止的CV&#xff0c;亲自去项目实战&#xff0c;读源码&#xff0c;研究原理吧&#xff01; 《Framework精编…