vue 子组件页面push_Vue路由vue-router使用this.$router.push();实现页面跳转以及传参。...

自己摸索着加网上找到的文档学习记录的,看着比较多,但是认真看完理解,应该基本对路由就会了(以后可能继续补充)~:D

正文:

首先请确保项目已经安装了vue-router:

运行命令:npm install vue-router --save  (也可自行百度)

安装后在项目package.json 文件中查看vue-router版本信息:

"dependencies": {

"axios": "^0.18.1",

"element-ui": "^2.13.0",

"npm": "^6.14.2",

"vue": "^2.6.11",

"vue-router": "^3.1.6",

"webpack": "^3.8.0",

"webpack-dev-server": "^2.9.7"

},

在项目中新建router文件,外加两个js文件,router.js 和 index.js 用于定义路由和配置路由。

router.js

import mainMenu from '../packages/project-main/main-menu.vue'

import projectGuiLin from '../packages/project-main/project-guilin.vue'

import topMenu from '../packages/project-main/top-menu.vue'

export const VueRouter = [

{

path:'/topMenu',

name:'topMenu',

component:topMenu,

//父页面 包含 子页面跳转时的路由配置写法

//显然父组件中已经给子组件分配了渲染时的显示位置,有了嵌套路由,渲染时父子组件都会被渲染

children:[

{

path:'/topMenu/mainMenu',

name:'mainMenu',

component:mainMenu,

},

{

path:'/topMenu/projectGuiLin',

name:'projectGuiLin',

component:projectGuiLin,

}

]

},

//登录页路由

{

path:'/login',

name:'login',

component:login,

},

//设置默认路由页

{

path:'/',

redirect:'login',

},

];

export const projectRouter =[...VueRouter];//下面记得留一空行

index.js

import Vue from "vue";

import Router from "vue-router";

import {

projectRouter

} from './router'

Vue.use(Router)

//路由配置

const sysConfigRouter={

routes:projectRouter

}

const router = new Router(sysConfigRouter)//使用路由配置

export default router;

然后!在src下的main.js文件中初始化router路由才行哦~~~

import Vue from "vue";

import App from "../test/App.vue";

import ElementUI from "element-ui";

import "element-ui/lib/theme-chalk/index.css";

//-----------------------------------------------------------

import router from '../router/index' //引入router

Vue.use(ElementUI);

Vue.config.productionTip = false;

new Vue({

router,//router初始化

el: "#app",

components: { App },

template: ""

});

最后在App.vue文件中加上标签,自动将组件渲染在此标签处。

以上配置完之后,根据自己的业务需要操作即可,我本地搭建的项目操作如下(包括了传参部分):

-----------------------------分界线-----------------------------

我搭建的项目login.vue点击登录以后,通过this.$router.push({path:' '})即可在router.vue中根据path字段

找到之前路由配置的组件,如图:

login.vue

代码部分(根据push的路由会直接跳转至指定的组件页面,可设置为默认页面,看自己情况设置) :

//点击登录

clickSignIn(){

if(this.loginUserData.userName === "lsc" && this.loginUserData.userPassWord === '123456'){

this.$router.push({path:'/topMenu/mainMenu'})

}

else{

alert("账号或密码不正确!请重新确认~~~~")

}

},

传参部分:注意使用path就不能使用params传参,否则无效。这样记:path+query  /  name+params;

handleSelect();我这里是点击不同菜单控制显示切换不同页面的,key传递true、false给父组件,父组件中通过v-show控制子组件显示隐藏,个人感觉不是很好,还在摸索ing...

handleSelect(key, keyPath) {

if(key === 'nj'){

//path不能和params一起使用,否则params将无效

this.$router.push({path:`/topMenu/mainMenu`,query:{alert:"跳转成功"}});//query传参 参数会显示在地址栏末尾

this.$emit('main-menu',key);

console.log("queryyyyyyyyyyyyyy",this.$route.query.alert)

}

else if(key === 'gl'){

this.$router.push({name:`projectGuiLin`,params:{data:'params传参'}});//params传参

this.$emit('main-menu',key)

console.log("paramssssssssssss",this.$route.params.data)

}

},

仅供参考~ ^-^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值