Vue路由注意事项
一、vue中路由的使用
1、定义组件
<template>
<div class="hello">
<h1 @click="info" :class="color">{{ msg }}</h1>
</div>
</template>
<script>
export default {
name: 'hello',
data () {
return {
msg: '我是Hello组件',
color:'color'
}
},
methods:{
info(){
console.log('你点击了我');
}
}
}
</script>
<style>
.color{
color:#630;
}
</style>
2、配置路由文件
import Vue from 'vue'
import Router from 'vue-router'
import Hello from '@/components/Hello'
import Word from '@/components/Word';
Vue.use(Router)
export default new Router({
routes: [
{
path: '/',
component: Hello
},
{
path:'/index',
component:Word
}
]
})
3、配置路由插座<router-view></router-view>
<template>
<div id="app">
<!--可以定义不变的内容-->
<h3>{{title}}</h3>
<!--定义路由插座-->
<router-view></router-view>
<!--可以定义不变的内容-->
</div>
</template>
<script>
export default{
name:'app',
data(){
return{
title:'我是项目主入口'
}
}
}
</script>
4、路由文件注入到main.js文件中
import Vue from 'vue';
import Router from 'vue-router';
import App from './App';
import router from './router/index';
Vue.config.productionTip = false;
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
render(h){
return h(App);
}
})
二、配置路由的跳转
路由的跳转使用标签router-link
1、知道路径的跳转
<ul>
<li><router-link to="/">Hello页面</router-link></li>
<li><router-link to="/word">word页面</router-link></li>
</ul>
<!-- 定义路由插座 -->
<router-view></router-view>
2、to是通过绑定数据到上面
<ul>
<li><router-link to="/">Hello页面</router-link></li>
<li><router-link :to="word">word页面</router-link></li>
</ul>
<!-- 定义路由插座 -->
<router-view></router-view>
<script>
export default{
name:'app',
data(){
return{
title:'我是项目主入口',
word:'/word'
}
}
}
</script>
三、定义子路由
1、定义路由跳转
<ul>
<li><router-link to="/word/router1">路由1</router-link></li>
<li><router-link to="/word/router2">路由2</router-link></li>
<router-view></router-view>
</ul>
2、路由的跳转
{
path:'/word',
component:Word,
children:[
{
path:'router1',
component:Router1
},
{
path:'router2',
component:Router2
}
]
}
四、路由之间传递参数params方式
1、路由跳转的时候定义要传递参数形式
{
path:'router1/:id',
component:Router1
},
2、页面跳转的时候传递参数
<!--123就是传递的id值-->
<li><router-link to="/word/router1/123">路由1</router-link></li>
3、在组件中接收传递过去的参数
export default{
mounted(){
console.log(this.$route);
console.log(this.$route.params.id);
}
}
五、路由之间传递参数query方式
1、在路由跳转地方传递query参数
<li><router-link v-bind:to="{path:'/word/router2',query:{id:123}}">路由2</router-link></li>
2、在组件的mounted中接收
export default{
mounted(){
console.log(this.$route);
console.log(this.$route.query.id);
}
}
六、关于vue脚本中操作页面的跳转及传递参数
1、使用push实现页面跳转
methods:{
go1(){
// 使用params传递参数
this.$router.push({path:'/word/router1/123'});
}
}
2、使用replace实现页面的跳转
methods:{
go2(){
// 使用query传递参数
this.$router.replace({path:'/word/router2',query:{id:123}});
}
}
七、关于前进与后退
1、页面代码
<input type="button" value="前进" @click="next"/>
<input type="button" value="后进" @click="prevent"/>
2、事件方法代码
methods:{
next(){
this.$router.go(1);
},
prevent(){
this.$router.go(-1);
}
}
八、重定向
1、配置路由
{
path:'router', // path路径
redirect:'/word/router3' // 重定向指向的路径
}
2、配置页面跳转
<li><router-link to="/word/router">路由4</router-link></li>
3、重定向函数
{
path:'router5',
redirect:()=>{
console.log(arguments);
return '/word/router3';
}
}
九、路由的钩子函数
1、beforeEnter的使用
{
path:'router2',
component:Router2,
beforeEnter(to,form,next){
console.log('///',arguments);
setTimeout(()=>(next()),1000);
}
},
2、beforeRouteUpdate的使用
3、beforeRouteLeave的使用
十、路由实现组件间传递数据
1、直接传递到组件
<Myhead v-bind:name1="name1"></Myhead>
1
<script>
import Myheadfrom '@/components/Myhead';
export default{
name:'app',
data(){
return{
name1:'张三'
}
},
components:{
Myhead
}
}
</script>
2、组件Myhead中接收
export default{
props:['name1'],
}
3、传递到router-view上
<router-view v-bind:age="age"></router-view>
export default{
name:'word',
props:['age'],
}
Vue路由注意事项的更多相关文章
- Vue路由vue-router
前面的话 在Web开发中,路由是指根据URL分配到对应的处理程序.对于大多数单页面应用,都推荐使用官方支持的vue-router.Vue-router通过管理URL,实现URL和组件的对应,以及通过U ...
- Vue路由参数
vue路由参数 1.参数router-link vue.prototype.xxx = {add:fn}`所有组件中,使用this.xxx就能拿到这个对象2.查询字符串 (1)配置: :to=&quo ...
- vue项目注意事项
vue项目注意事项 1. 文件和路由命名规范 views里面代表的是你下面导航中的每一块,每个文件名 需要大写,路由命名全部小写,第一层路由就是最下面的那几个导航的名字,二级路由是在一 级路由的基础上 ...
- Vue路由-详细总结
Vue路由vue-router 前面的话 在Web开发中,路由是指根据URL分配到对应的处理程序.对于大多数单页面应用,都推荐使用官方支持的vue-router.Vue-router通过管理URL ...
- 攻克vue路由
先下手 路由是个好功能,但是每次都感觉没法开始下手,愣愣的看半天官方文档,所以做个快速开始教程. 首先先搭好HTML文件结构: <!--link和view在一个父元素下--> <di ...
- Vue路由学习心得
GoodBoy and GoodGirl~进来了就看完点个赞再离开,写了这么多也不容易的~ 一.介绍 1.概念:路由其实就是指向的意思,当我们点击home按钮时,页面中就要显示home的内容,点击l ...
- VUE路由新页面打开的方法总结
平常做单页面的场景比较多,所以大部分的业务是在同一个页面进行跳转.要通过VUE路由使用新页面打开且传递参数,可以采用以下两个方法: 1.router-link的target <router-li ...
- vue路由参数变化刷新数据
当路由到某个组件时,由于组件会复用,所以生命周期函数不会再次执行, 如果这个组件是模板组件,靠传入不同数据来显示的.那么,可能会发生参数变化了但页面数据却不变化. 问题 假如有个组件 info.vue ...
- 10.3 Vue 路由系统
Vue 路由系统 简单示例 main.js import Vue from 'vue' import App from './App.vue' //https://router.vuejs.or ...
随机推荐
- rest_framework框架的分页
class MyPageNumberPagination(PageNumberPagination): page_size = 1 page_query_param = 'page' page_siz ...
- codeforces 299E Cube Problem
Cube Problem Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Stat ...
- 将pip源更换到国内镜像
将pip源更换到国内镜像用pip管理工具安装库文件时,默认使用国外的源文件,因此在国内的下载速度会比较慢,可能只有50KB/s.幸好,国内的一些顶级科研机构已经给我们准备好了各种镜像,下载速度可达2M ...
- IO操作基本步骤
package com.study02; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundE ...
- SpringBoot中资源初始化加载的几种方式
一.问题 在平时的业务模块开发过程中,难免会需要做一些全局的任务.缓存.线程等等的初始化工作,那么如何解决这个问题呢?方法有多种,但具体又要怎么选择呢? 二.资源初始化 1.既然要做资源的初始化,那么 ...
- vue 父子组件渲染
问题描述:父组件调用了一个子组件,传递了一个id的属性到子组件, 但是在子组件中将这个id的props属性赋值给了data里面定义的另外一个属性myId,并且写了watch监听这个id的props. ...
- java如何实现多继承
在java中,原则上是不允许多继承的,也就是类与类之间只可以单继承.那么,有没有办法,可以在不使用接口的情况下实现多继承呢? 答案是可以.使用内部类就可以多继承,严格来说,还不是实现多继承,但是这种 ...
- POJ 2778 DNA Sequence ( AC自动机、Trie图、矩阵快速幂、DP )
题意 : 给出一些病毒串,问你由ATGC构成的长度为 n 且不包含这些病毒串的个数有多少个 分析 : 这题搞了我真特么久啊,首先你需要知道的前置技能包括 AC自动机.构建Trie图.矩阵快速幂,其中矩 ...
- [luogu]P2680 运输计划[二分答案][树上差分]
[luogu]P2680 [NOIP2015]运输计划 题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n ...
- 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)
点击了解更多Python课程>>> 老男孩python3.5全栈开发第9期+课件笔记(1-15部全 共125天完整无加密)大小:236G 此课程为老男孩全栈开发最新完结课程,适合零基 ...