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.mzph.cn/news/855694.shtml

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

相关文章

油猴hook+内存爆破

hook方式 说明&#xff1a;来回翻页发现只有请求体的token需要逆向&#xff0c;而这个请求体是在params里&#xff0c;拼接到url里&#xff0c;可以直接用油猴hook url里的关键字token。 正常步骤 hook代码 // UserScript // name hookparams // namespace htt…

【C语言】扫雷游戏

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

springBoot多数据源使用、配置

又参加了一个新的项目&#xff0c;虽然是去年做的项目&#xff0c;拿来复用改造&#xff0c;但是也学到了很多。这个项目会用到其他项目的数据&#xff0c;如果调用他们的接口取数据&#xff0c;我还是觉得太麻烦了。打算直接配置多数据源。 然后去另一个数据库系统中取出数据…

深信服科技:2023网络钓鱼趋势分析报告

随着互联网的快速发展和广泛应用&#xff0c;网络钓鱼活动带来的安全隐患愈演愈烈。因应威胁发展&#xff0c;我 们编撰了此份分析报告&#xff0c;旨在全面了解其发展态势&#xff0c;并提醒相关部门、企业和公众加强防范。 在本报告中&#xff0c;我们将详细梳理网络钓鱼的近…

IBM,开始构建以量子为中心的超级计算机

6月6日&#xff0c;IBM与Pasqal宣布了一项重大合作!IBM和Pasqal打算合作开发一种以量子为中心的超级计算的通用方法并促进化学和材料科学的应用研究。IBM和Pasqal将与高性能计算领域的领先机构合作&#xff0c;为以量子为中心的超级计算奠定基础——将量子计算与先进的经典计算…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第44课-骨骼动画

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第44课-骨骼动画 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&…

开放式耳机哪个牌子好?2024五大闭眼入开放式耳机推荐!

想要购买开放式耳机&#xff0c;但面对很多品牌和型号&#xff0c;是否感到无从下手&#xff1f;别担心&#xff0c;作为耳机发烧友和测评专家&#xff0c;我为大家带来了几款热门开放式耳机的横向对比。从各个方面进行详细对比&#xff0c;还有我自己觉得还不错的五款开放式耳…

微型导轨的摩擦系数分析!

微型导轨的摩擦力主要包括滑动摩擦力和滚动摩擦力&#xff0c;摩擦系数是一个关键参数&#xff0c;它决定了滑块在导轨上运动时所受到的摩擦力大小&#xff0c;摩擦系数越低&#xff0c;系统的运动效率和精度就越高&#xff0c;而微型导轨的摩擦系数是受多个因素影响的。 微型导…

【docker hub镜像源失效】2024年6月6日 docker 国内镜像源失效

文章目录 概述中科大镜像源阿里镜像源其他镜像源可用的镜像源写在最后 之前违反社区规定了&#xff0c;做了和谐 概述 大家都知道使用docker hub官方镜像需要魔法&#xff0c;虽然大部人有魔法&#xff0c;但是网速也是很慢&#xff0c;还有部分同学没有&#xff0c;全靠国内各…

移远通信发布高性价比智能模组SC200P系列,赋能金融支付等行业智慧升级

近日&#xff0c;全球领先的物联网整体解决方案供应商移远通信宣布&#xff0c;为满足智慧金融、智能家居、智能穿戴、工业手持等消费和工业应用对高速率、多媒体、长生命周期等终端性能的需求&#xff0c;其正式推出基于紫光展锐UNISOC 7861平台的全新8核4G智能模组SC200P系列…

关于INCA的几个实用功能

01--VUI窗口设计 这个可以按照自己的想法设计INCA观测或标定窗口 首先进入到INCA的环境内&#xff0c;点击实验→加载VUI窗口 选择空的窗口 打开后如下所示&#xff1a; 点击UI开发模式&#xff0c;如下图 如下&#xff1a; 添加标定量、观测量、示波器 窗口的大小需要在开发…

ProtoBuf序列化协议简介

首先&#xff0c;常见的序列化方法主要有以下几种&#xff1a; TLV编码及其变体(tag, length, value)&#xff1a; 比如ProtoBuf。文本流编码&#xff1a;XML/JSON固定结构编码&#xff1a;基本原理是&#xff0c;协议约定了传输字段类型和字段含义&#xff0c;和TLV类似&…

家庭财务新助手,记录收支明细,一键导出表格,让您的家庭财务一目了然!

在繁忙的现代生活中&#xff0c;家庭财务管理常常成为一项令人头疼的任务。如何记录每一笔收支&#xff0c;如何清晰地掌握家庭财务状况&#xff0c;如何合理规划未来开支&#xff0c;这些都是我们需要面对的问题。然而&#xff0c;有了这款家庭财务助手——晨曦记账本&#xf…

【启明智显产品介绍】Model3工业级HMI芯片详解系列专题(一):芯片性能

Model3工业级跨界MCU是一款国产自主的基于RISC-V架构的高性能芯片&#xff0c;内置平头哥玄铁E907&#xff0c;主频480MHz&#xff0c;片上1MB大容量SRAM以及64Mb PSRAM。 Model3工业级MCU具有丰富的屏接口、高分辨率PWM和多路高精度定时器&#xff0c;可以处理各类实时数据与实…

录屏软件OBS简单使用

录屏软件OBS简单使用 官网下载地址&#xff1a; https://obsproject.com/ window解压直接使用版&#xff1a; 链接: https://pan.baidu.com/s/1495KDkvuDnjqdOvm1IG4Fw 提取码: 9xcr 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 简单使用 解压 解压window解…

深度学习(十一)——神经网络:线形层及其他层介绍

一、正则化层中nn.BatchNorm2d简介 主要作用&#xff1a;对输入函数采用正则化。正则化的主要作用是加快神经网络的训练速度。 class torch.nn.BatchNorm2d(num_features, eps1e-05, momentum0.1, affineTrue, track_running_statsTrue, deviceNone, dtypeNone)输入参数&…

大模型学习路线,存下吧很难找全的

随着人工智能技术的飞速发展&#xff0c;大模型在自然语言处理、计算机视觉、推荐系统等领域取得了显著成果。越来越多的学者和开发者开始关注并投身于大模型的研究与应用。本文将以大模型学习路线为核心&#xff0c;为您介绍从入门到精通所需掌握的知识和技能。 一、入门篇 …

Springboot整合Zookeeper分布式组件实例

一、Zookeeper概述 1.1 Zookeeper的定义 Zookeeper是一个开源的分布式协调服务&#xff0c;主要用于分布式应用程序中的协调管理。它由Apache软件基金会维护&#xff0c;是Hadoop生态系统中的重要成员。Zookeeper提供了一个高效且可靠的分布式锁服务&#xff0c;以及群集管理…

基于Vue3.0 Node.js 的 大文件切片上传、秒传、断点续传实现方案梳理

✨&#x1f4bb; 在处理大文件上传时&#xff0c;切片上传是提高效率与用户体验的关键技术之一。下面将详细介绍如何在前端利用Vue框架与Node.js后端配合&#xff0c;实现这一功能。 &#x1f446;&#x1f3fb;大体流程 &#x1f446;&#x1f3fb;一、文件切片上传 通过文件…

力扣每日一题 6/11 暴力搜索

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 419.甲板上的战舰[中等] 题目&#xff1a; 给你一个大小为 m x n 的矩阵 b…