首页 > 解决方案 > 我需要通过 $router.push 传递 URL 中不可见的数据

问题描述

我需要传递一些在 URL 中不可见的数据$router.push

比如密码,我不应该显示一些信息而是传递一些数据。

因此,我尝试使用this.$bus.$emit并向新路由器提供了一些数据,但它无法正常工作。

像这样,

*signup.vue ---------

在模板中,

<anq-button content="next" class-prop="default" :click-handler="handleSubmit"></anq-button>

在方法上,

...
this.$bus.$emit('newPayload', JSON.stringify(this.payload));

this.$router.push({
     path:`/detail?name=${this.payload.name}&userSn=${this.payload.username}`,
});
...

*detail.vue --------

在模板中,

...
<anq-head header="member_info" icon-prop="info"
                  :description="`${this.payload.name}` +
         'SignUp'"></anq-head>
...
<anq-button content="check" class-prop="default"
                            :click-handler="handleSubmit"></anq-button>
...

在创建中,

this.$bus.$on('newPayload', val => {
                this.payload = JSON.parse(val);
                alert("eventbus: " + JSON.stringify(this.payload));
            })

在方法上,

...
handleSubmit() {
                this.$bus.$emit('newPayloadForm', JSON.stringify(this.payload),
                    JSON.stringify(this.form));
                this.$router.push({
                    path:
                        `/info?name=${this.payload.name}&userSn=${this.payload.username}`
                });
...

我写了这样的代码。但它不能this.payload.name用于detail.vue

我认为这可能是一个异步问题。但我不知道我应该如何修复这些代码。请给我帮助。谢谢你。

标签: vue.jsvuex

解决方案


推荐阅读