vue 页面间传值

使用params传参 ,不能使用path 只能使用name

使用params传参,刷新参数会消失

router/index.js

import Vue from 'vue'
import Router from 'vue-router'
import login from '@/components/login/login'
import index from '@/components/index/index'
import HelloWorld from '@/components/HelloWorld'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      redirect: '/login'
    },
    {
      path:'/index',
      name : 'index',
      component : index
    },
    {
      path:'/login',
      name : 'login',
      component : login
    }
  ]
})

login页面(params传参)

this.$router.replace({name:'index',params:{
                       username:successResponse.data.object.username,
                       phone:successResponse.data.object.phone
                       }
                       })

index页面

<template>
    <div>  
        <hr>
        <div>
            This is username. <span v-text="username"> </span>  <br> 
            This is the phone. <span v-text="phone"> </span> <br> 
             This is also username {{$route.params.username}}   
        </div>
        <hr> 
    </div>
</template>
<script>
export default {
    name : 'index',
    //created  钩子函数  Vue 初始化时执行
    created:function() {
        this.getParams();
    },
    watch:{
        //监测路由变化,只要变化了就调用路由参数方法将数据存储本组件即可
        '$route':'getParams'
    },
    methods:{
        getParams:function() {
            //取得路由带过来的参数
            let routeUsername = this.$route.params.username
            let routePhone = this.$route.params.phone
            //将数据放在当前组件的数据内
            this.username = routeUsername
            this.phone = routePhone
        },
    }
}
</script>

1234831-20190604134437009-993505231.png

1234831-20190604134122602-1484308699.png

login页面(query传参)

this.$router.replace({path:'/index',query:{
                       username:successResponse.data.object.username,
                       phone:successResponse.data.object.phone
                       }
                       })

index页面

<template>
    <div>
        
        <hr>
        <div>
            This is username. <span v-text="username"> </span>  <br> 
            This is the phone. <span v-text="phone"> </span> <br> 
             This is also username {{$route.query.username}}    
        </div>
        <hr>
        
    </div>
</template>
<script>
export default {
    name : 'index',
    //created  钩子函数  Vue 初始化时执行
    created:function() {
        this.getQuerys();
    },
    watch:{
        //监测路由变化,只要变化了就调用路由参数方法将数据存储本组件即可
        '$route':'getQuerys',
    },
    methods:{
        getQuerys:function() {
            //取得路由带过来的参数
            let routeUsername = this.$route.query.username
            let routePhone = this.$route.query.phone
            //将数据放在当前组件的数据内
            this.username = routeUsername
            this.phone = routePhone
        },
    }
}
</script>

1234831-20190604140346264-220965488.png

转载于:https://www.cnblogs.com/lick468/p/10973021.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值