vue3(十八)-基础入门之vue-nuxt自定义视图及页面组件的特殊配置

ops/2024/11/24 21:34:01/

一、自定义视图

在没有指定视图的情况下,nuxt 使用的是默认视图 layouts/default.vue

<template><nuxt />
</template>

1、创建一个视图并将其保存到 layouts/blog.vue

别忘了在布局文件中添加 < nuxt /> 组件用于显示页面的主体内容。

<template><div><div>我的博客导航栏在这里</div><nuxt /></div>
</template>

2、使用自定义视图

pages/posts.vue 中通过 layout 属性指定视图来替代默认视图

<template>...
</template>
<script>javascript">export default {layout: 'blog'}
</script>

二、自定义错误页面

自定义 layouts/error.vue 组件,这个布局文件不需要包含
标签。可以把这个布局文件当成是显示应用错误(404,500 等)的组件。
error.vue 的名称固定不可变

<template><div class="container"><h1 v-if="error.statusCode === 404">页面不存在</h1><h1 v-else>应用发生错误异常</h1><nuxt-link to="/">首 页</nuxt-link></div>
</template><script>javascript">export default {props: ['error'],layout: 'blog' // 可以为错误页面指定自定义的布局}
</script>

三、页面组件的特殊配置

<script>javascript">export default {// 页面级别的配置项// 1. 指定当前页面使用的布局(layouts 根目录下的布局文件)layout: 'custom-layout', // 字符串形式// 或者动态设置,使用 layout 函数形式,要确保返回一个字符串layout (context) {return 'custom-layout'},// 2. 指定页面的中间件,中间件会在页面渲染之前被调用middleware: 'auth', // 单个中间件// 或者多个中间件middleware: ['auth', 'stats'],// 3. 指定页面切换的过渡动效transition: 'page', // 字符串形式// 或者对象形式transition: {name: 'page',mode: 'out-in'},	  // 4. 布尔值,默认: false。 //用于判定渲染页面前是否需要将当前页面滚动至顶部scrollToTop: true,// 5. this.$nuxt.$loading.start(),可以手动控制它,//仅适用于在 nuxt.config.js 中设置loading的情况下loading: false,// 6. key属性key: (to) => to.fullPath,// 7. 校验方法用于校验 动态路由的参数,必须返回布尔值或重定向对象validate({ params }) {// 验证 ID 是否为数字return /^\d+$/.test(params.id) },// 8. asyncData 中不能使用 this,因为它在组件实例创建之前执行//支持 异步数据处理,另外该方法的第一个参数为当前页面组件的上下文对象//返回一个 Promise,  //nuxt.js会等待该Promise被解析之后才会设置组件的数据,从而渲染组件.async asyncData({ params, $axios }) {const data = await $axios.$get(`/api/posts/${params.id}`)return { post: data }},// 9. watchQuery 配置,监听 URL 查询参数的变化并触发页面更新watchQuery: ['page'],async asyncData({ query, $axios }) {// 当 URL 查询参数 page 变化时重新获取数据const page = parseInt(query.page) || 1const posts = await $axios.$get(`/api/posts?page=${page}`)return { posts }}// 10. 页面头部信息head() {return {title: this.title,meta: [{ hid: 'description', name: 'description', content: '页面描述' }]}}}
</script>

asyncData 的参数说明:

javascript"><script>export default {async asyncData({// 最常用的核心属性app,        // Vue 实例store,      // Vuex storeroute,      // 路由信息params,     // 路由参数 如 _id.vue 中的 idquery,      // URL 查询参数error,      // 错误处理方法redirect,   // 重定向方法$axios,     // axios 实例(如果使用了 @nuxtjs/axios)// 其他常用属性env,        // 环境变量isDev,      // 是否是开发环境isHMR,      // 是否是热模块替换req,        // Node.js HTTP 请求对象 (仅服务器端)res,        // Node.js HTTP 响应对象 (仅服务器端)// 不太常用的属性from,       // 来源路由beforeNuxtRender, // 渲染页面前的函数nuxtState,  // Nuxt 状态base,       // 路由基础路径payload,    // 页面负载数据}) {// 使用示例}}
</script>

http://www.ppmy.cn/ops/136406.html

相关文章

输入/输出管理 III(磁盘和固态硬盘)

一、磁盘 【总结】&#xff1a; 磁盘&#xff08;Disk&#xff09;是由表面涂有磁性物质的物理盘片&#xff0c;通过一个称为磁头的导体线圈从磁盘存取数据。在读&#xff0f;写操作期间&#xff0c;磁头固定&#xff0c;磁盘在下面高速旋转。如下图所示&#xff1a; 磁盘盘面…

重生之我在学环境变量

环境变量 基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我们的所链接的动态静态库在哪里&#xff0c;但 是照样可以链接成功&#…

【视频】二维码识别:libzbar-dev、zbar-tools(zbarimg )

1、简介 ZBar可以使用多个方式识别各种条形码和二维码。 支持的格式有:EAN-13/UPC-A、UPC-E、EAN-8、Code 128、Code 93、Code 39、Codabar、Interleaved 2 of 5、QR Code和SQ Code 支持的来源有:视频流、图像文件等 libzbar-dev:二维码识别开发库 zbar-tools(zbarimg …

anaconda pycharm 使用问题

刚开始使用这两个工具&#xff0c;有点混乱&#xff0c;今天终于明白了一点点。 首先&#xff0c;可以cmd进入后用conda 创建虚拟环境&#xff0c;用conda create --name env_name -y命令&#xff0c;比如我使用conda create python36 python3.6.13创建了名为python36的环境&a…

GDPU 信息安全 期末复习

文章目录 第一章 绪论✅ 单选题✅ 简答题6. 假定你是单位的安全主管&#xff0c;为了提高单位的网络安全性&#xff0c;在制定单位的安全保障方案时&#xff0c;有哪些措施&#xff08;包括技术和非技术的&#xff09;&#xff1f;9. 有人说只要我有足够多的钱&#xff0c;就可…

详解Oracle表的类型(一)

1.引言&#xff1a; Oracle数据库提供了多种表类型&#xff0c;以满足不同的数据存储和管理需求。本博文将对Oracle中常见表类型及使用场景进行详细介绍。 2. Oracle的表类型 2.1 普通表&#xff08;Regular Table/Heap Table&#xff09; 2.1.1 定义&#xff1a; 普通表是…

基于OpenCV的自制Python访客识别程序

这是我用Pyqt5&#xff0c;基于OpenCV做的一个Python访客识别程序&#xff0c;它具体包括如下5个功能&#xff1a; 1、选择媒体菜单&#xff0c;可以打开本地摄像头&#xff1b;如果知道rtsp地址&#xff0c;则可以直接访问局域网内的网络串流。 2、选择播放菜单&#xff0c;…

SpringMVC-Day1

SpringMVC 1.SpringMVC介绍 springMVC是一种基于Java实现MVC模型的轻量级Web框架 优点&#xff1a; 使用简单&#xff0c;开发便捷&#xff08;相较于Servelt&#xff09; 灵活性强 使用SpringMVC技术开发web程序流程 创建web工程&#xff08;Maven结构&#xff09; 设置…