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

news2024/12/23 9:12:56

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.coloradmin.cn/o/1847565.html

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

相关文章

湖南科技大学24计算机考研情况,软工学硕考数二,分数线290分,录取均分321分!

湖南科技大学&#xff08;Hunan University of Science and Technology&#xff09;坐落在伟人故里、人文圣地湘潭&#xff0c;处于长株潭核心区域&#xff0c;比邻湘潭九华经济技术开发区&#xff08;国家级&#xff09;&#xff0c;是应急管理部、国家国防科技工业局与湖南省…

复分析——第6章—— Γ 函数和 ζ 函数(E.M. Stein R. Shakarchi)

第6章 Γ函数和Ζ函数(The Gamma and Zeta Functions) 毫不夸张地说&#xff0c;Γ函数和Ζ函数是数学中最重要的非初等函数之一。Γ函数在自然界中无处不在。它出现在大量计算中&#xff0c;并以分析中出现的大量恒等式为特征。对此的部分解释可能在于Γ函数的基本结构特性&…

Nginx HTTPS(证书) 部署实战

一、申请证书与认证 要搭建https服务首先需有SSL证书&#xff0c;证书通常是在第三方申请&#xff0c;在阿里云的安全服务中有SSL证书这一项&#xff0c;可以在里面申请免费的证书。也可以在自己电脑中生成&#xff0c;虽然也能完成加密&#xff0c;但是浏览器是不认可的&…

编译 CanMV 固件

前言 上一章节中已经搭建好了基于 CanMV 的 C 开发环境&#xff0c;这么一来便可以进行基于 C 语言和 FreeRTOS 的应用开发或者编译基于 MicroPython 语法的应用开发方式所需的 CanMV 固件&#xff0c;本 章就将带领读者体验一下 CanMV 固件的编译流程。 本章分为如下几个小节&…

Java面试题:mysql执行速度慢的原因和优化

Sql语句执行速度慢 原因 聚合查询 多表查询 表数据量过大查询 深度分页查询 分析 sql的执行计划 可以使用EXPLAIN或者DESC获取Mysql如何执行SELECT语句的信息 直接在select语句前加关键字explain/desc 得到一个执行信息表 信息字段分析 possible_keys:可能使用到的索…

云计算【第一阶段(18)】磁盘管理与文件系统

一、磁盘基础 磁盘&#xff08;disk&#xff09;是指利用磁记录技术存储数据的存储器。 磁盘是计算机主要的存储介质&#xff0c;可以存储大量的二进制数据&#xff0c;并且断电后也能保持数据不丢失。 早期计算机使用的磁盘是软磁盘&#xff08;Floppy Disk&#xff0c;简称…

海外社媒网站抓取经验总结:如何更高效实现网页抓取?

有效的网络抓取需要采取战略方法来克服挑战并确保最佳数据提取。让我们深入研究一些关键实践&#xff0c;这些实践将使您能够掌握复杂的网络抓取。 一、了解 Web 抓取检测 在深入探讨最佳实践之前&#xff0c;让我们先了解一下网站如何识别和抵御网络爬虫。了解您在这一过程中…

深度神经网络一

文章目录 深度神经网络 (DNN)1. 概述2. 基本概念3. 网络结构 深度神经网络的层次结构详细讲解1. 输入层&#xff08;Input Layer&#xff09;2. 隐藏层&#xff08;Hidden Layers&#xff09;3. 输出层&#xff08;Output Layer&#xff09;整体流程深度神经网络的优点深度神经…

[行业原型] 线上药房管理系统

​行业背景 据中国网上药店理事会调查报告显示&#xff1a;2011年&#xff0c;医药B2C的规模达到4亿元&#xff0c;仅出现5家销售额达5000万元的网上药店。而2011年医药行业的市场规模达到3718亿&#xff0c;线上药品的销售额还不到网下药店的一个零头&#xff0c;还有很大的发…

C++类基本常识

文章目录 一、类的默认方法二、类的成员变量初始化1 类的成员变量有三种初始化方法&#xff1a;2 成员变量初始化顺序3 const和static的初始化 三、C内存区域四、const和static 一、类的默认方法 C的类都会有8个默认方法 默认构造函数默认拷贝构造函数默认析构函数默认重载赋…

C语言基础关键字的含义和使用方法

​关键字在C语言中扮演着非常重要的角色&#xff0c;它们定义了语言的基本构造和语法规则&#xff0c;通过使用关键字&#xff0c;开发者可以创建变量、定义数据类型、控制程序流程&#xff08;如循环和条件判断&#xff09;、声明函数等。由于这些字是保留的&#xff0c;所以编…

springSecurity(二):实现登入获取token与解析token

登入生成token 主要思想 springSecurity使用UsernamePasswordAuthenticationToken类来封装用户名和密码的认证信息 代码实现 发起登入请求后&#xff0c;进入到login()方法 /*** 在接口中我们通过AuthenticationManager的authenticate方法来进行用户认证,* 所以需要在Secur…

Polyp-DDPM: Diffusion-Based Semantic Polyp Synthesis for Enhanced Segmentation

Polyp- ddpm:基于扩散的语义Polyp合成增强分割 摘要&#xff1a; 本研究介绍了一种基于扩散的方法Polyp-DDPM&#xff0c;该方法用于生成假面条件下息肉的逼真图像&#xff0c;旨在增强胃肠道息肉的分割。我们的方法解决了与医学图像相关的数据限制、高注释成本和隐私问题的挑…

网络编程(四)wireshark基本使用 TCP的三次握手和四次回挥手 TCP和UDP的比较

一、使用wireshark抓包分析协议头 &#xff08;一&#xff09;wireshark常用的过滤语句 tcp.port <想要查看的端口号> ip.src <想要查看的源IP地址> ip.dest <想要查看的目的IP地址> ip.addr <想要查看的IP地址>&#xff08;二&#xff09;抓包分…

DevEco鸿蒙开发请求网络交互设置

首先&#xff0c;在鸿蒙项目下config.json中找到module项&#xff0c;在里面填写"reqPermissions": [{"name": "ohos.permission.INTERNET"}] 在页面对应js文件内&#xff0c;填写import fetch from system.fetch;。 GET和POST区别 GET将表单数…

界面控件DevExpress v24.1全新发布 - 跨平台性进一步增强

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 今年第一个重要版本v23.1正式发布&#xff0c;该版本拥有众多…

1. 基础设计流程(以时钟分频器的设计为例)

1. 准备工作 1. 写有vcs编译命令的run_vcs.csh的shell脚本 2. 装有timescale&#xff0c;设计文件以及仿真文件的flish.f&#xff08;filelist文件&#xff0c;用于VCS直接读取&#xff09; vcs -R -full64 -fsdb -f flist.f -l test.log 2. 写代码&#xff08;重点了解代码…

【Mac】DMG Canvas for mac(DMG镜像制作工具)软件介绍

软件介绍 DMG Canvas 是一款专门用于创建 macOS 磁盘映像文件&#xff08;DMG&#xff09;的软件。它的主要功能是让用户可以轻松地设计、定制和生成 macOS 上的安装器和磁盘映像文件&#xff0c;以下是它的一些主要特点和功能。 主要特点和功能 1. 用户界面设计 DMG Canva…

定义和反射Annotation类(注解)

文章目录 前言一、定义Annotation类二、反射Anootation类 1.元注解2.反射注解总结 前言 在写代码的过程中&#xff0c;我们经常会写到注释&#xff0c;以此来提醒代码中的点。但是&#xff0c;这些注释不会被查看&#xff0c;也不在整个代码之中&#xff0c;只能在源代码中进行…

Mistral AI最新力作——Mistral Large媲美GPT-4

Mistral AI自豪地宣布&#xff0c;他们的最新力作——Mistral Large&#xff0c;已经正式面世。这款尖端的文本生成模型不仅在多语言理解上表现出色&#xff0c;更在推理能力上达到了顶级水平。Mistral Large能够处理包括文本理解、转换和代码生成在内的复杂多语言推理任务。 M…