Vue页面跳转+传递参数

1.路径传值

1.关于如何在vue页面跳转并且传递参数
1.1.使用Menu 导航菜单
通过iView插件导入Menu 导航菜单:如下图
在这里插入图片描述
菜单的代码,其中在method方法下通过if判断使用路由来跳转到相应的页面


<template>
    <div class="layout">
        <Layout :style="{minHeight: '100vh'}">

            <Sider collapsible :collapsed-width="100" v-model="isCollapsed">
                <Menu :active-name="$route.name" theme="dark" width="auto" accordion :class="menuitemClasses"
                @on-select="selectMenu">
                    <MenuItem name="0-0">
                        <Icon type="ios-navigate"></Icon>
                        <span>后台管理系统</span>
                    </MenuItem>

                    <MenuItem name="0-1">
                        <Icon type="ios-navigate"></Icon>
                        <span>控制面板</span>
                    </MenuItem>
                    
                    <Submenu name="1">
                        <template slot="title">
                            <Icon type="ios-paper" />
                            系统管理
                        </template>
                        <MenuItem name="1-1">角色管理</MenuItem>
                        <MenuItem name="1-2">用户管理</MenuItem>
                        <MenuItem name="userinfo">个人管理</MenuItem>
                    </Submenu>
                    <Submenu name="2">
                        <template slot="title">
                            <Icon type="ios-people" />
                            产品管理
                        </template>
                        <MenuItem name="product">产品管理</MenuItem>
                       
                    </Submenu>
                    <Submenu name="3">
                        <template slot="title">
                            <Icon type="ios-people" />
                            项目管理
                        </template>
                        <MenuItem name="project">项目管理</MenuItem>
                       
                    </Submenu>

                    <Submenu name="4">
                        <template slot="title">
                            <Icon type="ios-people" />
                            审批管理
                        </template>
                        <MenuItem name="approve1">一级审核</MenuItem>
                       <MenuItem name="approve2">二级审核</MenuItem>
                       <MenuItem name="approve3">财务放款</MenuItem>
                       
                    </Submenu>
                </Menu>
            </Sider>

            <Layout>
                <Header :style="{background: '#fff', boxShadow: '0 2px 3px 2px rgba(0,0,0,.1)'}">
                     <Menu mode="horizontal">
                   
                    <div class="layout-nav">
                        
                        
                        <MenuItem name="4">
                            <Icon type="ios-paper"></Icon>
                            退出
                        </MenuItem>
                    </div>
                </Menu>
                </Header>
                
                <Content :style="{padding: '0 16px 16px'}">
                    <Breadcrumb :style="{margin: '16px 0'}">
                        <BreadcrumbItem>主页</BreadcrumbItem>
                    </Breadcrumb>

                        <div>
                            <Row>
                                <Col span="24">
                                <!--页面开始部分-->
                                <router-view></router-view>
                                <!--页面结束部分-->
                                </Col>
                            </Row>
                        </div>
                        
                </Content>

               
            </Layout>
        </Layout>
    </div>
</template>
<script>
    export default {
        components: {
            
        },
        data () {
            return {
                isCollapsed: false,
            };
        },
        computed: {
            menuitemClasses: function () {
                return [
                    'menu-item',
                    this.isCollapsed ? 'collapsed-menu' : ''
                ]
            }
        },
        methods: {
            selectMenu(name){
                //alert(name)
                if ("product" == name ){
                     //根据路由跳转
                     this.$router.push('/main/product')
                }
                if("userinfo" == name){
                    //alert(99)   
                    this.$router.push('/main/userinfo') 
                }
                if("project" == name){
                    //alert(99)   
                    this.$router.push('/main/project') 
                }
                if("approve1" == name){
                    //alert(99)   
                    this.$router.push('/main/approve1') 
                }
                if("approve2" == name){
                    //alert(99)   
                    this.$router.push('/main/approve2') 
                }
                if("approve3" == name){
                    //alert(99)   
                    this.$router.push('/main/approve3') 
                }


            }
        },
        created(){
        	console.log('start')
        },
        mouted(){
        	console.log(this.$el)
        }
    }
</script>
<style scoped>
    .layout-con{
        height: 100%;
        width: 100%;
    }
    .menu-item span{
        display: inline-block;
        /*  overflow: hidden;超出部分隐藏*/
        width: 69px;
        text-overflow: ellipsis;
        white-space: nowrap;
        vertical-align: bottom;
        transition: width .2s ease .2s;
    }
    .menu-item i{
        transform: translateX(0px);
        transition: font-size .2s ease, transform .2s ease;
        vertical-align: middle;
        font-size: 16px;
    }
    .collapsed-menu span{
        width: 0px;
        transition: width .2s ease;
    }
    .collapsed-menu i{
        transform: translateX(5px);
        transition: font-size .2s ease .2s, transform .2s ease .2s;
        vertical-align: middle;
        font-size: 22px;
    }
    .layout-nav{
        width: 120px;
        margin: 0 auto;
        margin-right: 20px;
    }
</style>

2.跳转到另一个页面前需要准备以下工作 在router下配置所要跳转的页面
在这里插入图片描述
router路由配置内容,这里只配置了一个页面

{
      path: '/main',
      name: 'main',
      component: main,
      children: [
        {
          path: 'product',
          name: 'product',
          component: () => import('@/view/product/product')
        }
      ]
    },

3.下面就是在页面上路由跳转
通过.$router来跳转到相应页面(前提路由什么都得配置好)

//路由跳转
 this.$router.push({
   name: 'product'
   })

4.路由跳转带参数的方法
4.1根据name跳转

updateInfo(index){  
    //路由跳转
    this.$router.push({
        name: 'product_update',
        //根据params:{参数} 来进行传值
       params :{
           id : this.tableData1[index].id
       }
    })
},

跳转到指定页面接收传递的参数

//通过这个方法this.$route.params来接收参数
 let id= this.$route.params.id;

4.2根据path跳转

this.$router.push({
         path: '/emp',
         //根据params:{参数} 来进行传值
          query :{
            row: row
          }
          });

跳转到指定页面接收传递的参数

this.emp= this.$route.query.row;
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微微笑再加油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值