【 如何使用路由建立多视图单页应用】的详细讲解

使用路由建立多视图单页应用

  • 1. 多视图
    • 1.1 引入依赖库
    • 1.2 创建自定义组件
  • 2. React(使用React Router)
  • 3. Angular(使用Angular Router)
  • 4. Vue(使用Vue Router)

1. 多视图

构建多视图的单页应用程序(Single Page Application,简称SPA)通常会使用前端路由来实现,前端路由允许在不重新加载整个页面的情况下动态地加载不同的视图内容,这可以通过各种前端框架(如ReactAngularVue等)中的路由库来实现,下面,我将介绍如何在这些流行框架中使用路由来构建一个多视图SPA

1.1 引入依赖库

建立一个基本html项目,创建一个demo页面并引入一下js库文件

<script src="js/vue.js"></script>
<script src="js/vue-router.min.js"></script>

1.2 创建自定义组件

创建vue组件有两种方式:

  • var MyComonent = Vue.component(“button-counter”, {…});
    创建一个vue组件并赋给MyComponent变量
  • const Home = Vue.extend({});
    extend是构造一个组件的语法器. 你给它参数,他给你一个组件,然后这个组件你可以作用到Vue.component这个全局注册方法里,也可以在任意vue模板里使用

创建一个Home组件和About组件

//组件名用PPascalCase风格
const Home = Vue.extend({//必须定义一个根元素作为容器,包裹模板中的内容元素template: '<div><h1>Home组件</h1><div>Home组件内容区</div></div>'
});const About = Vue.extend({//必须定义一个根元素作为容器,包裹模板中的内容元素template: '<div><h1>About组件</h1><div>About组件内容区</div></div>'
});

2. React(使用React Router)

React RouterReact中一个非常流行的路由库。

  1. 初始化项目和安装依赖

    npx create-react-app my-spa
    cd my-spa
    npm install react-router-dom
    
  2. 设置路由

    src目录中创建几个组件文件,例如Home.js, About.js, Contact.js,分别代表不同的视图。

    App.js中设置路由。

    import React from 'react';
    import { BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom';
    import Home from './Home';
    import About from './About';
    import Contact from './Contact';function App() {return (<Router><nav><ul><li><Link to="/">Home</Link></li><li><Link to="/about">About</Link></li><li><Link to="/contact">Contact</Link></li></ul></nav><Switch><Route exact path="/" component={Home} /><Route path="/about" component={About} /><Route path="/contact" component={Contact} /></Switch></Router>);
    }export default App;
    

    当用户点击不同的链接时,<Router> 会匹配 <Route> 规则来动态加载对应组件。

  3. 创建视图组件

    在每个组件文件中定义不同的视图。

  4. 运行应用

    npm start
    

3. Angular(使用Angular Router)

在Angular中,有一个内建的路由库可以使用。

  1. 创建Angular应用

    ng new my-spa
    cd my-spa
    
  2. 设置路由

    app-routing.module.ts中配置路由。

    import { NgModule } from '@angular/core';
    import { Routes, RouterModule } from '@angular/router';
    import { HomeComponent } from './home/home.component';
    import { AboutComponent } from './about/about.component';
    import { ContactComponent } from './contact/contact.component';const routes: Routes = [{ path: '', component: HomeComponent },{ path: 'about', component: AboutComponent },{ path: 'contact', component: ContactComponent },
    ];@NgModule({imports: [RouterModule.forRoot(routes)],exports: [RouterModule]
    })
    export class AppRoutingModule { }
    
  3. 创建视图组件

    使用Angular CLI来生成新组件。

    ng generate component home
    ng generate component about
    ng generate component contact
    
  4. 使用 <router-outlet>

    app.component.html中,使用 <router-outlet> 作为视图的占位符。

  5. 运行应用

    ng serve
    

4. Vue(使用Vue Router)

Vue Router是Vue的官方路由管理器。

  1. 创建Vue应用

    vue create my-spa
    cd my-spa
    vue add router
    
  2. 设置路由

    src/router/index.js文件中配置路由。

    import Vue from 'vue'
    import Router from 'vue-router'
    import Home from '../views/Home.vue'
    import About from '../views/About.vue'
    import Contact from '../views/Contact.vue'Vue.use(Router)const routes = [{path: '/',name: 'Home',component: Home},{path: '/about',name: 'About',component: About},{path: '/contact',name: 'Contact',component: Contact}
    ]const router = new Router({routes
    })export default router;
    
  3. 创建视图组件

    views目录中创建对应的组件文件。

  4. 使用 <router-view>

    App.vue文件中,使用 <router-view> 作为视图的占位符。

  5. 运行应用

    npm run serve
    

以上是使用三种不同框架构建多视图SPA的基本介绍,具体的代码实现和配置可能会根据框架版本和个人项目需求有所不同。这只是一个快速概览,实际开发过程中可能还需要考虑更多细节,如路由守卫、路由懒加载、嵌套路由等高级功能。

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

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

相关文章

传值、传址、空间释放详细图解

目录 前言 一.进程 1.1 进程的映射 1.2 进程的虚拟空间 二.函数传参 2.1 函数传参 2.2 函数传值 2.2.1 函数传值案例1 2.2.2 函数传值案例2 2.2.3 返回值为常量 2.3 函数传送地址 2.3 字符串使用 前言 详细介绍函数传值和传地址区别&#xff1a;进行数据操作的区别&#xff0c…

c++算法学习笔记 (11) 离散化

1.前置知识&#xff1a; unique是 c标准模板库STL中十分实用的函数之一&#xff0c;使用此函数需要#include <algorithm>头文件 该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素。 (1) 这里的去除并非真正意义的erase&#xff0c;而是将重复的元素放到容…

VMware workstation pro 16 虚拟机的安装

VMware workstation pro 16 虚拟机的安装 VMware 16下载VMware 16安装VMware 16许可 VMware 16下载 下载地址&#xff1a; VMware workstation pro 16 官网下载地址 VMware 16安装 安装向导&#xff0c;点击下一步勾选我同意许可协议中的条款&#xff0c;点击下一步 更改安…

被奔驰看上的“人”

上周五&#xff0c;人形机器人公司、NASA 合作伙伴 Apptronik 宣布已与梅赛德斯奔驰&#xff08;以下简称奔驰&#xff09;达成一项商业协议&#xff0c;试点将身高 1.7 米、体重 140 多斤的双足机器人 Apollo 用于制造业。奔驰也成为继宝马、蔚来汽车之后最新尝试人形机器人的…

nodejs实现链接shp的属性信息(替换字段或者追加字段)

写在前面 偶尔听到同事说一个数据处理重复性的流程太多&#xff0c;就了解了下&#xff0c;原来是1份shp数据对应着一个xls属性文件&#xff0c;需要把xls文件里的一部分属性更新到shp的相关字段中&#xff0c;当然这种操作是可以用ArcGIS或者QGIS实现&#xff0c;但是当数据特…

综合交易模型----可转债三低策略实盘qmt版,提供源代码

链接 综合交易模型----可转债三低策略实盘qmt版&#xff0c;提供源代码 (qq.com) 可转债3低策略是指选择正股市值低、转债余额低、溢价率低的可转债进行投资的策略。 市值低&#xff1a;指的是可转债对应的正股市场价值较小&#xff0c;这通常意味着需要较少的资金就可以对股价…

jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合

jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合 文章目录 jeecg启动Sentinel 一直是空白页面 解决办法用 外部 Sentinel SpringCloud之Sentinel概述和安装及简单整合 Sentinel概述基本介绍 Sentinel安装下载地址: http…

聊聊AI时代学习这件事本身应该发生什么样的变化

随着 AI 大模型 的爆发&#xff0c;我们身处这个时代&#xff0c;应该怎么样去学习去了解这些前言的技术&#xff1f;可能很多人会说我英文不好&#xff0c;我算法不行&#xff0c;无法深入去了解 AI 大模型相关的知识吧&#xff1f; 没关系&#xff0c;其实博主也跟大家一样&…

注册登录Vue3+ElementPlus代码

1、app.vue <script setup>import LoginVue from /views/Login.vue </script><template><LoginVue/> </template> 2、Login.vue <script setup> import { User, Lock } from "element-plus/icons-vue"; import { ElMessage } …

[小程序开发] 外部样式类

一、外部样式类 在使用组件时&#xff0c;组件使用者可以给组件传入CSS类名&#xff0c;通过传入的类名修改组件的样式。 如果需要使用外部样式类修改组件的样式&#xff0c;在Component中需要用extemalClasses定义若干个外部样式类。 二、使用步骤 1、在Component中用externa…

C++面试100问!(一)

STL中MAP数据存放形式&#xff1f; 红黑树。unordered map底层结构是哈希表。 STL有什么基本组成&#xff1f; 容器、迭代器、仿函数、算法、分配器、配接器&#xff0c; 他们之间的关系&#xff1a;分配器给容器分配存储空间&#xff0c;算法通过迭代器获取容器中的内容&…

实在智能Agent——RPA终极进化方向

RPA技术备受瞩目&#xff0c;它通过“机器人”自动化了人力执行的重复性、低复杂度任务&#xff0c;解放了员工并降低了企业成本。RPA机器人全天候运行&#xff0c;避免人为错误&#xff0c;高效处理任务&#xff0c;成为处理事务、操作数据、回应查询的理想选择。在管理后台&a…

第四百一十回

文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容&#xff0c;本章回中将介绍如何获取时间戳.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

实体店运营方案大全:从选址到日常管理的全面指导

想开实体店或正在创业的朋友们&#xff0c;大家好&#xff01;今天&#xff0c;我作为一个鲜奶吧5年的创业者&#xff0c;为大家分享一份实体店运营方案大全&#xff0c;涵盖从选址到日常管理的各个方面。我在实体店方面有一些心得体会&#xff0c;今天就来和大家聊聊&#xff…

【面试自测】Java并发

Synchronized 用 过 吗 &#xff0c; 其 原 理 是 什 么 &#xff1f;获 取 对 象 的 锁 &#xff0c; 这 个 “ 锁 ” 到 底 是 什 么 &#xff1f; 如 何 确 定 对 象 的 锁 &#xff1f;什 么 是 可 重 入 性 &#xff0c; 为 什 么 说 Synchronized 是 可 重 入 锁 &#x…

【软考】系统集成项目管理工程师(十九)收尾管理【1分】

一、项目收尾的内容 二、总结 三、软件后续工作 练一练 【例1-17上】&#xff08;B&#xff09;不属于项目验收的内容。 A.验收测试 B.系统维护工作 C.项目终验 D.系统试运行 【例2-17上】信息系统集成项目完成验收后要进行一个综合性的项目后评估,评估的内容一般包括&#…

uView LoadingIcon 加载动画

此组件为一个小动画&#xff0c;目前用在uView的loadMore加载更多等组件的正在加载状态场景。 #平台差异说明 App&#xff08;vue&#xff09;App&#xff08;nvue&#xff09;H5小程序√√√√ #基本使用 通过mode设定动画的类型&#xff0c;circle为圆圈的形状&#xff0…

探索Spring中的属性注入:@Value注解解析与应用

探索Spring中的属性注入&#xff1a;Value注解解析与应用 探索Spring中的属性注入&#xff1a;Value注解解析与应用摘要引言正文作用代码准备示例注入字符串注入属性注入Bean及其属性 其他属性注入优先级问题对Value属性注入的扩展Spring Boot对Value类型转换的扩展 代码案例演…

【单调栈】[USACO09MAR] Look Up S

题目描述 约翰的 N N N 头奶牛站成一排,奶牛 i i i 的身高是 H i H_i Hi​。现在,每只奶牛都在向右看齐。对于奶牛 i i i,如果奶牛 j j j 满足 i < j i<j i<j 且 H i < H j H_i<H_j Hi​<Hj​,我们可以说奶牛 i i i 可以仰望奶牛 j j j。 求出…

第三门课:结构化机器学习项目-机器学习策略

文章目录 1 机器学习策略一1.1 为什么是ML策略&#xff1f;1.2 正交化1.3 单一数字评估指标1.4 满足和优化指标1.5 训练、开发及测试集划分1.6 开发集和测试集的大小1.7 什么时候改变开发、测试集和指标&#xff1f;1.8 为什么是人的表现&#xff1f;1.9 可避免偏差1.10 理解人…