Vue舞台剧

 

Vue 的舞台剧比喻 🎭(完整表格版)

Vue 结构及路由管理

Vue 结构比喻(舞台剧)🎭作用
index.html空白场地 🏟️Vue 负责填充内容,提供 #app 容器,等待演出开始。
main.js导演 🎬组织 Vue 应用,把 App.vue 挂载到 #app,让演出开始。
App.vue后台演员候场室 🎭组件集合点,包含 <router-view/>,决定哪个演员(组件)上场。
router/index.js剧本 📖规定演员(组件)在什么路径(场景)演出,即路由配置。
<router-view/>舞台切换器 🔄根据当前路径,展示当前应该上场的演员(组件)。
<router-link>演员门铃 🔔用户点击后,Vue 负责切换到对应组件(演员)。

扩展内容:Vue 其他核心概念

Vue 概念比喻(舞台剧)🎭作用
组件(.vue 文件)演员 🎭负责演出,每个组件代表一个角色。
props剧本台词 📜组件之间传递的数据,就像演员接到剧本台词。
emit演员汇报导演 🎙️子组件通知父组件某些事情发生了。
computed后台准备好的表演 🏋️计算后的数据,只在需要时更新,提高性能。
watch舞台监督 👀监听数据变化,一旦变化就采取行动。
v-if / v-show演员的出场与隐藏 🎭控制组件是否显示,v-if 是真正移除,v-show 只是隐藏。
v-for群演队列 👥用来循环渲染多个相同类型的演员(组件)。
v-model对讲机 🎤组件和用户输入之间的双向绑定,用户的输入直接影响演员的表演。
store(Vuex / Pinia)剧团资源库 📦管理全局状态,多个演员(组件)可以共享资源(数据)。

最终总结

  1. Vue 是一个 SPA(单页面应用)的舞台剧 🎭,index.html 是舞台,main.js 是导演,App.vue 负责调度演员(组件)。

  2. 路由管理(Vue Router) 📖 就像剧本,规定哪个演员(组件)在什么场景(路径)上场。

  3. 组件是演员 🎭,它们可以接收道具(props)、交流(emit)、计算剧情(computed)、监听剧情变化(watch)。

  4. Vue 的指令(v-ifv-showv-forv-model 🎬 让舞台剧更生动,决定演员的出场、隐藏、重复演出、互动。

  5. 状态管理(Vuex / Pinia) 📦 就像一个大剧团仓库,所有演员都可以取用里面的道具(数据)。

 

📌 main.js 挂载

main.js 负责挂载 Vue 应用,把 App.vue 渲染到 index.html#app 里。

📌 Vue 挂载过程mian.js-app.vue-index.html

 1️⃣main.js 创建 Vue 应用并挂载

jsimport { createApp } from 'vue'  // 引入 Vue 3 的创建方法
import App from './App.vue'  // 导入根组件 App.vuecreateApp(App).mount('#app')  // 创建 Vue 应用,并挂载到 index.html 的 #app

 2️⃣index.html有一个 #app 占位符

html<body><div id="app">ddd</div>  <!-- Vue 还没运行时,#app 只是普通的 HTML -->
</body>

3️⃣运行vue,vue接管 #app,并用 App.vue 里的内容替换它

        app 变成 Vue 管理的单页面应用(SPA)容器

html<div id="app"><img src="./assets/logo.png"><router-view/>  <!-- 这里会动态渲染不同的页面 /ddd被替换不显示 -->
</div>

 

📌 Vue 路由:

1、安装路由

在 Vue 中,路由(Vue Router)是用来管理不同页面之间跳转的工具,它帮助你在单页面应用(SPA)中切换不同的视图,而不需要刷新整个页面

npm install vue-router

   2、配置路由

接下来,你需要在项目中配置路由。这通常会在一个独立的文件里,比如router/index.js

js// src/router/index.js
import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';const routes = [{path: '/', //是我们项目的首页('/' 代表网站的根路径(即 首页))name: 'Home',component: Home,  // 默认显示的页面},{path: '/about',                     //场地name: 'About',                      //场地代号或者演员的代号component: About,  // 另一个页面   //场地对应的演员(组件)},
];const router = createRouter({history: createWebHistory(process.env.BASE_URL),routes,
});export default router; //导出路由 //是为了在mian.js导入
代码作用
path: '/'定义首页路径(访问 http://localhost:8080/ 就会显示这个页面)。
name: 'Home'给路由起名字,可以用 router.push({ name: 'Home' }) 方式跳转。
component: Home告诉 Vue 这个路由应该加载 Home.vue 组件,作为首页内容。

首页访问逻辑

  • 当你打开 http://localhost:8080/
    → Vue Router 会匹配 path: '/' 的路由
    → 显示 Home.vue (首页)

  • 如果你点击 <router-link to="/about">About</router-link>
    → Vue Router 会匹配 path: '/about'
    → 显示 About.vue (关于页)

Vue 配置路由 🎭—— 场景与演员比喻

属性比喻 🎭作用
path场地 🏟️定义这个页面(场景)的访问路径,决定用户访问哪个 URL 时看到哪个页面。
name场地代号 📛给路由起个代号,方便后续使用 router.push({ name: 'About' }) 进行跳转,而不用直接写路径,路径修改时也不影响跳转逻辑。
component场地上的演员 🎭这个路由(场地)上要展示的 Vue 组件(演

3、 main.js 挂载路由

现在你需要把路由集成到 Vue 应用中,这通常是在 main.js 里完成的。你需要引入配置好的 router 并将其传入 Vue 应用实例。

js// src/main.js
import { createApp } from 'vue';//导入vue
import App from './App.vue';//导入根组件
import router from './router';  // 导入路由      让 Vue 知道如何切换页面。createApp(App) //创建vue应用                 传入 App.vue 作为入口组件.use(router)  // 使用路由                  或者说注册Router,让应用支持路由功能。.mount('#app');//挂载路由                  挂载到 index.html 里的 <div id="app"></div>

4、 App.vue 展示

 在你的根组件 App.vue 添加 <router-view> 组件中,你需要加入 <router-view/> 这个占位符,它将用于显示当前路由匹配的组件。

src/App.vue<template><div id="app"><h1>Vue Router Example</h1><nav> //导航栏(<nav>) 👉 用 <router-link> 让用户切换页面。<router-link to="/">Home</router-link> <!-- 点击跳转到子组件Home.vue --><router-link to="/about">About</router-link><!-- 点击跳转到我们自定义的子组件About.vue --></nav><router-view/> //👉 是一个占位符,根据当前路由展示<nav>对应组件</div>
</template><script>
export default {name: 'App',//导出组件app.vue//是为了在mian.js导入
};
</script>
src/views/About.vue //这个是我们自定义的组件<template><div><h2>About Page</h2><p>Welcome to the About Page!</p></div>
</template>

解答

🔹入口文件 main.js 如何启动 Vue 项目?

入口文件 main.js 如何启动 Vue 项目?📂 src├── 📂 components│    ├── Home.vue  <-- 这是一个子组件│    ├── About.vue <-- 也是一个子组件│├── 📂 router│    ├── index.js  <-- 这里配置路由│├── App.vue   <-- 这是 Vue 项目的根组件├── main.js   <-- 入口文件,挂载 App.vueVue 读取 main.js创建 Vue 应用,并加载 App.vue 作为根组件注册 Vue Router(如果有)把 App.vue 渲染到 index.html 的 <div id="app">页面显示出来,Vue 项目正式启动!🎉🚀 入口文件的作用总结
✅ Vue 应用的起点 👉 没有 main.js,Vue 无法运行。
✅ 负责加载 App.vue 👉 Vue 应用的根组件必须从这里启动。
✅ 注册路由等全局功能 👉 让 Vue 知道如何处理页面跳转。
✅ 挂载 Vue 到 HTML 页面 👉 把 Vue 渲染到 index.html。所以,main.js 是 Vue 项目的入口文件,相当于启动 Vue 的“开关”! 🎬

🔹 路由怎么工作?

  • 当你访问 / 路径时,Home.vue 组件会显示在 <router-view/> 里。

  • 当你访问 /about 路径时,About.vue 组件会显示在 <router-view/> 里。

你可以通过点击 <router-link> 实现页面跳转:

  • <router-link to="/">Home</router-link> 会跳转到 /,显示 Home.vue

  • <router-link to="/about">About</router-link> 会跳转到 /about,显示 About.vue

这样,Vue Router 让你在单页面应用中无刷新地切换视图,而不需要重新加载整个页面。

🔹 总结

  1. 安装和配置 Vue Router:让你能够根据路径来渲染不同的组件。

  2. main.js 中注册并挂载路由:确保 Vue 应用能够使用路由。

  3. App.vue 中添加 <router-view/>:用于显示匹配的组件。

  4. App.vue 中使用 <router-link> 来跳转路由:帮助你在页面间导航。

这样,Vue Router 就能帮助你实现基于路径的动态组件切换,构建一个 SPA(单页面应用)

 

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

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

相关文章

【Windows】win10系统安装.NET Framework 3.5(包括.NET 2.0和3.0)失败 错误代码:0×80240438

一、.NET3.5(包括.NET 2.0和3.0)安装方式 1.1 联网安装(需要联网,能访问微软,简单,很可能会失败) 1.2 离线安装-救急用(需要操作系统iso镜像文件,复杂,成功几率大) 二、联网安装 通过【控制面板】→【程序】→【程序和功能】→【启用或关闭Windows功能】 下载过程…

Android学习总结之RecyclerView补充篇

在 Android 开发中&#xff0c;列表数据更新的性能一直是关键痛点。传统的 notifyDataSetChanged() 会触发全量刷新&#xff0c;导致不必要的界面重绘。而 DiffUtil 作为 Android 提供的高效差异计算工具&#xff0c;能精准识别数据变化&#xff0c;实现局部更新&#xff0c;成…

Miniforge3高效管理 Python环境:2025年最新实践指南

Miniforge3 高效管理 Python 环境:2025 年最新实践指南 在现代开发中,灵活高效地管理 Python 环境至关重要。Miniforge3 作为一款轻量级 Conda 管理工具,不仅默认采用更新更快的 conda-forge 软件源,还对 ARM 架构(例如 Apple M1/M2/M3)有着出色的适配性。相比于传统的 …

山东大学软件学院项目创新实训开发日志(4)之中医知识问答数据存储、功能结构、用户界面初步设计

目录 数据库设计&#xff1a; 功能设计&#xff1a; 用户界面: 数据库设计&#xff1a; --对话表 (1个对话包含多条消息) CREATE TABLE conversations ( conv_id VARCHAR(36) PRIMARY KEY, -- 对话ID user_id VARCHAR(36) NOT NULL, -- 所属用户 title VARCHAR(100), -- 对话…

交换机、路由器、VLAN、单臂路由、三层交换、STP

华为模拟安装 1.依次安装wincap 2.wireshark 3.virtual box 4.ensp 一、设置 1.virtual box设置 2.计算机防火墙允许以上程序 3.eNSP设置 路由器&#xff1a;AR2240 交换机&#xff1a;S5700、CE12800 防火墙USG6000V 交换机 一、交换机工作原理 1、回顾 二层交换机…

【蓝桥杯】每日练习 Day15

目录 前言 奶牛选美 分析 代码 大臣的旅费 分析 代码 飞机降落 分析 代码 母亲的牛奶 分析 代码 扫雷 分析 代码 前言 虽为诞辰&#xff0c;但也不忘完成每日的训练。 今天给大家带来五道dfs的题目&#xff0c;包括组合数&#xff0c;连通块&#xff0c;数的…

ipconfig、ping、ipconfig/all 4个常用 **Windows终端(CMD)命令** 的详细解释

ipconfig、ping、ipconfig/all 4个常用 Windows终端&#xff08;CMD&#xff09;命令 的详细解释、用途分析和使用示例 1. ipconfig 作用 快速查看本地网络连接的 IP地址、子网掩码、默认网关 等基础信息。 示例输出 Windows IP 配置无线局域网适配器 WLAN:IPv4 地址 . . .…

@emotion/css + react+动态主题切换

1.下载插件 npm install --save emotion/css 2.创建ThemeContext.tsx // src/ThemeContext.tsx import React, { createContext, useContext, useState } from "react";// 定义主题类型 export type Theme "light" | "dark";// 定义主题上下…

【信奥一本通提高篇】基础算法之贪心算法

原文 https://bbs.fmcraft.top/blog/index.php/archives/22/ 贪心算法 概述 近年来的信息学竞赛试题&#xff0c;经常出现求一个问题的可行解或最优解的题目。这类问题就是我们通常所说的最优化问题。贪心算法是求解这类问题的一种常用算法。在众多的算法中&#xff0c;贪心…

CentOS-7.0系统基础操作

配置ip地址 编辑网卡文件&#xff1a; vi etc/sysconfig/network-scripts/ifcfg-ens33 在网卡文件里参照如下设置&#xff1a; BOOTPROTO"static" IPADDR192.168.61.233 GATEWAY192.168.61.2 NETMASK255.255.255.0 ONBOOT"yes" 防火墙管理 开启防火墙&am…

【大模型应用】信息抽取的调研

老规矩&#xff0c;先占坑&#xff0c;后续更新。 关键词&#xff1a; Pydantic functioncal 参考文献&#xff1a;小白学大模型&#xff1a;自定义信息抽取Agent-CSDN博客

MySQL内存使用率高问题排查与解决方案:

目录标题 **一、问题现象****二、核心排查步骤****1. 参数检查****2. 内存使用分析****3. 存储过程/函数/视图检查****4. 操作系统级检查** **三、解决方案****1. 调整MySQL配置****2. 关闭透明大页&#xff08;THP&#xff09;****3. 优化查询与存储过程****4. 硬件与环境优化…

华为GaussDB数据库的手动备份与还原操作介绍

数据库的备份以A机上的操作为例。 1、使用linux的root用户登录到GaussDB服务器。 2、用以下命令切换到 GaussDB 管理员用户&#xff0c;其中&#xff0c;omm 为当前数据库的linux账号。 su - omm 3、执行gs_dump命令进行数据库备份&#xff1a; 这里使用gs_dump命令进行备…

How to install OpenJ9 JDK 17 on Ubuntu 24.04

概述 OpenJ9 是一款由 IBM 开发并开源的 Java 虚拟机&#xff08;JVM&#xff09;&#xff0c;现由 ​Eclipse 基金会管理&#xff08;名为 ​Eclipse OpenJ9&#xff09;。它旨在提供高性能、低内存消耗和快速启动时间&#xff0c;特别适用于云原生和容器化环境。 关键特性 …

洛谷题单1-P5705 【深基2.例7】数字反转-python-流程图重构

题目描述 输入一个不小于 100 100 100 且小于 1000 1000 1000&#xff0c;同时包括小数点后一位的一个浮点数&#xff0c;例如 123.4 123.4 123.4 &#xff0c;要求把这个数字翻转过来&#xff0c;变成 4.321 4.321 4.321 并输出。 输入格式 一行一个浮点数 输出格式 …

【云服务器】在Linux CentOS 7上快速搭建我的世界 Minecraft 服务器搭建,并实现远程联机,详细教程

【云服务器】在Linux CentOS 7上快速搭建我的世界 Minecraft 服务器搭建&#xff0c;详细详细教程 一、 服务器介绍二、下载 Minecraft 服务端三、安装 JDK 21四、搭建服务器五、本地测试连接六、添加服务&#xff0c;并设置开机自启动 前言&#xff1a; 推荐使用云服务器部署&…

内网穿透_ZeroTiers部署_广和通SC171_aidlux_嵌入式

下载 sudo curl -s https://install.zerotier.com | sudo bash &#xff08;需要科学上网&#xff09; 所有涉及硬件的操作好像都需要 root 权限&#xff0c;curl 在这里需要连接网络&#xff0c;所以也需要 sudo sudo zerotier-cli status 若返回 200 info 及设备 ID&#xff…

Faster RCNN Pytorch 实现 代码级 详解

基本结构&#xff1a; 采用VGG提取特征的Faster RCNN. self.backbone:提取出特征图->features self.rpn:选出推荐框->proposals self.roi heads:根据proposals在features上进行抠图->detections features self.backbone(images.tensors)proposals, proposal_losses…

【Matlab】-- 基于MATLAB的美赛常用多种算法

文章目录 文章目录 01 内容概要02 各种算法基本原理03 部分代码04 代码下载 01 内容概要 本资料集合了多种数学建模和优化算法的常用代码资源&#xff0c;旨在为参与美国大学生数学建模竞赛&#xff08;MCM/ICM&#xff0c;简称美赛&#xff09;的参赛者提供实用的编程工具和…

Vue2和Vue3响应式的基本实现

目录 简介Vue2 响应式Vue2 响应式的局限性 Vue3 响应式Vue3 响应式的优点 Vue2 和 Vue3 响应式对比 简介 在 Vue 框架中&#xff0c;数据的响应式是其核心特性之一。当页面数据发生变化时&#xff0c;我们希望界面能自动更新&#xff0c;而不是手动操作 DOM。这就需要对数据进…