日常练习另一部分

news/2025/9/22 14:50:05/文章来源:https://www.cnblogs.com/old-tom/p/19091896

上次我的练习是使用vue3进行的前端训练,我上一个博客简单实现了使用路由的单页面跳转,他的好处的所有页面一起加载,并且只使用一个main和app.vue,我又在原有的基础上尝试了多页面跳转。
about.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>关于我们 - Vue多页面应用</title><link rel="stylesheet" href="<%= BASE_URL %>css/common.css"></head><body><noscript><strong>请启用JavaScript以正常使用此应用</strong></noscript><div id="about-app"></div></body>
</html>

App.vue

<template><div class="container about-page"><div class="content"><h1>关于我们</h1><p>这是一个独立的关于页面,展示了多页面应用的能力。您可以通过下方按钮返回首页。</p><div class="button-container"><button class="btn"@click="goToHome">返回首页</button><button class="btn" @click="learnMore">了解更多</button></div></div></div>
</template><script>
export default {name: 'AboutPage',mounted() {this.animateContainer();},methods: {goToHome() {this.addLoadingToButton('.btn:first-child');setTimeout(() => {window.location.href = 'index.html#/';}, 500);},learnMore() {alert('这是关于页的一个功能按钮');},addLoadingToButton(selector) {const btn = document.querySelector(selector);if (btn) btn.classList.add('loading');},animateContainer() {const container = document.querySelector('.container');if (!container) return;container.style.opacity = '0';container.style.transform = 'translateY(20px)';setTimeout(() => {container.style.transition = 'opacity 0.5s, transform 0.5s';container.style.opacity = '1';container.style.transform = 'translateY(0)';}, 100);}}
}
</script>

main.js

import { createApp } from 'vue'
import App from './App.vue'createApp(App).mount('#about-app')

home.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>首页 - Vue多页面应用</title><link rel="stylesheet" href="<%= BASE_URL %>css/common.css"></head><body><noscript><strong>请启用JavaScript以正常使用此应用</strong></noscript><div id="app"></div></body>
</html>

App.vue

<template><!-- 添加根容器确保正确挂载 --><div id="app"><div class="container"><div class="content"><!-- 添加错误边界处理 --><router-view v-slot="{ Component, route }"><transition name="fade" mode="out-in"><div v-if="route.matched.length"><component :is="Component" /></div><div v-else class="error-view"><h2>页面未找到</h2><p>请求的路径 "{{ route.path }}" 不存在</p><button @click="goHome">返回首页</button></div></transition></router-view></div></div></div>
</template><script>
export default {name: 'App',methods: {goHome() {// 确保使用正确的首页路径this.$router.push({ name: 'home' });}}
}
</script>

main.js

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'createApp(App).use(router).mount('#app')

css文件不赘述,效果如下:
image
点击返回首页就是我上个练习的界面,点击了解更多则是我的一个另小功能测试,也不用赘述。

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

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

相关文章

每天一个安卓测试开发小知识之 (六)---常用的adb 命令第四期

每天一个安卓测试开发小知识之 (六)---常用的adb 命令第四期本期继续介绍adb命令root adb 查看app进程id adb服务端重启 获取当前界面的xml adb命令输入text1. root adbroot的作用是什么 如何进入root 如何退出 什么…

SAP-ABAP中STOP,EXIT,CHECK,RETURN,CONTINUE,LEAVE,REJECT的区别

Stop 命令使用该命令的程序位置INITIALIZATION, AT SELECTION-SCREEN, START-OF-SELECTION和GET 事件中处理说明1、 当在INITIALIZATION事件执行该命令,系统将直接触发应用服务器和客户端屏幕元素的发送;影响后续模块…

Arduino ide 软件 不建议大家使用 缺点多多

任何一个产品 ,不说缺点的 ,都是有问题的。 Arduino ide 自带的 下载开发板 安装包 和库 安装包 几乎都会失败!很慢 时间很长

Apifox调试报错信息

Apifox调试报错信息invalid character - in numeric literal错误 解决:在body如下设置 、 400 报错 解析请求参数发生错误 - invalid character n looking for beginning of object key string

视频融合平台EasyCVR国标GB28181视频诊断功能详解与实践

视频融合平台EasyCVR国标GB28181视频诊断功能详解与实践一、引言:海量摄像头下的运维困境 在智慧城市、智慧园区、大型连锁等场景中,动辄接入成百上千路GB28181监控摄像头。传统的运维方式高度依赖人工7x24小时盯屏,…

Refit Consul

类似于 Refit 的 HTTP 客户端库 这些库通常都基于 HttpClient,并提供了一种声明式或更简洁的方式来定义和调用 RESTful API。库名 描述 特点Flurl.Http 简洁、流畅的 HTTP 客户端库,支持流式 API。 语法简洁,链式调…

故障处理:Oracle 19.20未知BUG导致oraagent进程内存泄漏的案例处理

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。今天朋友在做…

麒麟服务器操作系统查询可用的内核版本以及安装和降级命令

1.查询当前安装的内核版本:dnf list installed kernel 2.卸载可选的内核版本: rpm -qa|grep 52.49 |xargs yum autoremove -y 因为dnf remove和yum remove都卸载不完整 3.查询所有可用的内核版本:dnf list --show…

esp32 stm32 ros2 三者区别

ESP32、STM32是两种不同的微控制器(MCU),而ROS 2是一个机器人操作系统,ESP32侧重于集成Wi-Fi和蓝牙的物联网应用,STM32擅长高性能工业和汽车控制,而ROS 2则是一个运行在这些硬件上的软件框架,用于开发复杂的机器…

20250406_信安一把梭_测试篇

流量分析, 应急响应, http, 信安一把梭Tags:流量分析, 应急响应, http, 信安一把梭 0x00. 题目 某天晚上安服仔小辉辉上班摸鱼期间突然发现服务器登入页面被挤掉线了,于是第六感告诉他,服务器肯定是被黑客攻击了,于…

3123004806软件工程查重项目

3123004806软件工程查重项目3123004806软件工程个人项目这个作业属于哪个课程 <https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024>这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class3…

DeepSeek大模型混合专家模型,DeepSeekMoE 重构 MoE 训练逻辑 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

前端 10 个 JS 神 API,开箱即用

1 Page Visibility API —— 页面“隐身”探测 常用场景: 用户切标签页时暂停视频、停止轮询document.addEventListener(visibilitychange, () => {document.visibilityState === hidden? video.pause(): video.p…

故障处理:清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业

故障处理:清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! …

Web自动化测试智能体详解

自然语言驱动Web自动化,让测试更智能、更高效 本次Web 自动化测试智能体课程将带您探索如何利用自然语言驱动 Web 自动化测试,显著提升测试效率与智能化水平。 课程亮点 本公开课将聚焦以下核心内容: Web 常见自动化…

Queue 配合Thread使用

Queue 配合Thread使用 生产消费者模型 结果 线程【3】开始下载https://picsum.photos/200/300线程【0】开始下载https://picsum.photos/300/300线程【4】开始下载https://picsum.photos/400/300 线程【1】开始下载http…

MyEMS 进阶应用:从单厂能耗管理到集团跨区域能源数据协同分析

对于许多现代化集团企业而言,能源成本是运营管理中不可忽视的核心支出。当业务遍布全国乃至全球时,能源管理便从单一的“点”(单个工厂、楼宇)上升为复杂的“面”(整个集团网络)的挑战。传统的单点能耗管理系统已…

Playwright自动化测试框架与AI智能体应用

自动化 数据驱动 MCP协议 智能体,四位一体打造下一代测试体验 本次Playwright自动化测试框架与AI智能体应用的课程将带您深入了解如何利用Playwright这一现代Web自动化测试框架,结合AI智能体技术,提升测试效率与…

快速搞定Dify+Chrome MCP:打造能操作网页的AI助手

你是否想过让AI不仅能回答问题,还能直接操作浏览器帮你做事?比如自动填写网页表单、抓取特定数据、或者点击按钮?现在,通过Dify和Chrome MCP的结合,你可以在3分钟内搭建一个能真正"动手"操作网页的AI助…