首页 > 其他分享 >路由配置

路由配置

时间:2023-03-14 14:36:17浏览次数:39  
标签:vue 配置 component path 组件 router 路由

路由配置

一、vue-router 安装和基本路由

① 安装 vue-router 包 :npm i [email protected] -S【vue2项目用这个,最新版的只支持vue3,】

② 创建路由模块:@/router/index.js 进行配置

③ 导入main.js并挂载路由模块

④ 声明路由链接和占位符

① 安装 vue-router 包

根据不同的地址打开、关闭不同的组件,#开头才是hash地址

这里以创建Home和User两个组件来作例

②创建@/router/index.js,在其中配置

1.导入VueRouter
import Vue from 'vue'
import VueRouter from 'vue-router'
2.把VueRouter安装为Vue项目的插件
Vue.use(VueRouter)
3.创建路由实例对象,在路由规则中声明路由链接
// routes是一个关键字数组,用于定义 hash地址 与 组件 的对应关系
// redirect用于重定向,当用户访问 / 则直接强制跳转到 /home

const router = new VueRouter({
    routes:[
        { path: '/' , redirect: '/home'},
        { path: '/home' , component: Home},
        { path: '/user' , component: User}
    ]
})
4.向外共享路由的实例对象
export default router
5.创建需要路由的组件

@/components/aHome.vue

  <div>
    <h1>这里是首页!</h1>
  </div>

@/components/aUser.vue

  <div>
    <h3>这里是用户!</h3>
  </div>
6.导入需要路由的组件
import Home from '@/components/Home.vue'
import User from '@/components/Home.vue'

③ 在main.js中导入

1.导入VueRouter 路由模块
import router from '@/router/index.js'
// 可简写如下,会自动找到文件夹内的index.js
//import router from '@/router'
2.挂载
new Vue({
  render: h => h(App),
  router//加入这个
}).$mount('#app')

④在App.vue的template中添加占位符

<router-view></router-view>

⑤进行测试:

<!-- 用于测试,注意这里需要# -->
<a href="#/home">首页</a>
<a href="#/user">用户</a>

⑥改进:配置router-link来替代a链接

<!-- 这里不需要#,它自己会添加 -->
<router-link to="/home">首页</router-link>
<router-link to="/user">用户</router-link>

二、实现嵌套路由

原理:在link中嵌入view,view里面再放两个link,link又是放一个view,这里就结束了。

在用户组件下创建两个组件:用户1、用户2,并在用户组件中添加两个链接方便索引

①在aUser.vue中

  <div>
    <h1>这里是用户!!</h1>
    <router-view></router-view>
    <hr />
    <router-link to="/user/user1">用户1</router-link>
    <router-link to="/user/user2">用户2</router-link>
  </div>

②创建子组件

@/components/tab/tab1.vue、@/components/tab/tab2.vue内容
  <div>
		<h1>你好,我是用户1/2!</h1>
  </div>

③在@/router/index.js中配置

导入
import User1 from '@/components/tab/tab1.vue'
import User2 from '@/components/tab/tab2.vue'
加入
const router = new VueRouter({
    routes:[
        { path: '/' , redirect: '/home'},
        { path: '/home' , component: Home},
		{ path: '/user' , component: User, children:[			
			//可添加一个属性redirect:'/user/user1'默认路由user1,点击用户时会自动打开与下面的{path: '' , component: User1}同功能
            // 设定子路由规则
            {path: '' , component: User1},
            {path: 'user2' , component: User2},
        ]},
      ]  
    })

注:User里的链接地址要和router/index.js里面的path一致

三、实现动态路由

动态路由:把hash地址可变的部分定义为参数,用 “:”,提高复用性

①在app.vue

<router-link to="/movie/1">电影2</router-link>
<router-link to="/movie/2">电影2</router-link>
<router-link to="/movie/3">电影2</router-link>

②在@/router/index.js

改进一:

原本

{ path: '/movie/1' , component: Movie},
{ path: '/movie/2' , component: Movie},
{ path: '/movie/3' , component: Movie},

改进

{ path: '/movie/:mid' , component: Movie},
{{this.$route.params.mid}}这是电影的id,this.$route是路由的参数对象。this.$route是路由的导航对象。
改进二:

在indexjs

//为路由规则开启props传参
{ path:'movie/:mid',component:Movie,props:true}

在movievue

export default{
props:[],
}
{{mid}}此时,这是电影的id

四、编程式导航

push、replace、to

声明式导航

通过链接跳转的,如a链接,router-link链接

编程式导航

浏览器中调用API实现导航。

this.$router.push('address_hash')
this.$router.replace('address_hash')
this.$router.go(N)

前置知识

手动模拟路由是很累的,就像是要在做饭了,自己从开始打造一口锅子。

/movie/2?name=zs
/后的参数,是路径参数。/movie/2是路径参数。this.$params.path来访问
?后面的参数,是查询参数。name=zs是查询参数。this.$params.query来访问
/movie/2?name=zs,是完整的值。this.$params.fullpath来访问这一完整的路径

SPA

SPA 指的是一个 web 网站只有唯一的一个 HTML 页面,所有组件的展示与切换都在这唯一的一个页面内完成。此时,不同组件之间的切换需要通过前端路由来实现

前端路由:Hash 地址与组件之间的对应关系,vue-router 管理 SPA 项目中组件的切换。

路由:哈希地址和组件的对应关系,id 与 name

push、go页面跳转,导航守卫
当前用户拥有后台主页的访问权限,直接放行:next()
当前用户没有后台主页的访问权限,强制其跳转到登录页面:next('/login')
当前用户没有后台主页的访问权限,不允许跳转到后台主页:next(false

标签:vue,配置,component,path,组件,router,路由
From: https://www.cnblogs.com/tupo/p/17214803.html

相关文章

  • 思科(cisco)交换机配置远程ssh连接
    配置单机远程ssh连接实验环境如图一台pc机、一台Cisco的switch;Cisco配置命令如下Switch>Switch>enable//进入特权模式Switch#configureterminal//切换全局......
  • 易语言读写配置项ini文件
    文章目录​​1.写ini文件​​​​2.读配置文件​​1.写ini文件.版本2写配置项(取运行目录()+“\config.ini”,“灰太狼”,“属性”,“大佬”)写配置项(取运行目......
  • CISCO-配置路由器的双向PAP和CHAP身份认证
    CISCO-配置路由器的CHAP身份认证一、拓扑图二、IP地址规划表设备接口IP地址R1S0/0/0172.16.10.1/30R1G0/0192.168.10.254/24R2S0/0/0172.16.10.2/30R2G0/0192.168.20.254/24......
  • Linux 工具命令(03): 使用 envsubst 渲染配置文件
    Linux工具命令(03):使用envsubst渲染配置文件如果在公众号文章发现状态为已更新,建议点击查看原文查看最新内容。状态:未更新原文链接:https://typonotes.co......
  • springboot 中使用@Value 获取配置文件中参数问题
    springboot中使用@Value("${spring.redis.password}")获取配置文件中参数时,如果配置文件中没有相关参数,项目启动时会报错Causedby:java.lang.IllegalArgumentExcep......
  • NLog配置
      <?xmlversion="1.0"encoding="utf-8"?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"......
  • CentOS -Linux 等保-安全加固相关配置
     1、口令锁定策略规则描述:设置口令认证失败后的锁定策略为了保障用户系统的安全,建议用户设置口令出错次数的阈值,以及由于口令尝试被锁定用户的自动解锁时间。用户锁定......
  • WebGIS|阿里云服务器配置Geoserver并发布服务
    前期准备购买阿里云的ECS服务器,创建实例,进入实例概述,查看这个实例的基本情况,这里我的实例的操作系统为系统为Ubuntu20.04。内存为4G,这里要注意的是公网IP,这时之后我们访......
  • VS的库配置
     VC++目录:包含目录:头文件所在文件夹库目录:lib文件所在文件夹  添加lib文件名 *重要,配置和平台应选择和实际调试匹配 ......
  • Maven简介和安装(配置中央仓库和本地仓库,IDEA配置Maven)
    简介Maven是使用Java语言编写的,是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型POM(ProjectObjectModel)项目对象模型。开发人员只需要做一些简单的配置,M......