解决vue页面传值的问题

两个页面之间通过Vuex进行传值

store代码:
import Vue from 'vue'
import router from '@/router/routes'
import Layout from '@/modules/layout/Layout'
import NestRoute from '@/modules/layout/NestRoute'

const Types = {
  ADD_PAGE_DETAIL: 'ADD_PAGE_DETAIL',
  SET_SKIN: 'SET_SKIN'
}
const state = {
  // 皮肤版本
  skin: 'v1',
  chandData:{},//进行声明
}
const getters = {
  skin: state => state.skin
}
const mutations = {
  chandDatas(state,chandData){
    state.chandData=chandData//传值
  }
}
const actions = {
  chandDatas(ctx,chandData){
    ctx.commit('chandDatas',chandData)//提交
  }
}
export default {
  state,
  actions,
  mutations,
  getters
}

复制代码
需要传值的页面
import {  mapActions, mapState, mapGetters  } from 'vuex'
methods: {
    openDetails(row){
        this.$store.commit("chandDatas",row)//动态传值@@@
            this.addPageDetail({
                component: ruleDetail,
                name: `ruleDetail_${row.id}`,
                path: `/basedata/ruleDetail/${row.id}`,
                meta: {
                    id: row,
                    label: `${row.id}`,
                    parent: 'freight',
                    closable: true,
                    cache: false,
                },
                isActive:row.isActive
            }).then(() => {
                this.$router.push({ name: `ruleDetail_${row.id}` })
            })
            
              
          },
    }
复制代码
需要接收值页面
import {  mapActions, mapState, mapGetters  } from 'vuex'
 methods: {
    ...mapActions([
    ]),
    fetchDetail() {
        let data2=this.$store.state.common.chandData;//接收值
    },
  },
复制代码

转载于:https://juejin.im/post/5c89e194e51d4556897da817

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值