javascript - Comment prendre les paramètres lors du retour dans Vue-Router Go(-1)?
我想大声告诉你
我想大声告诉你 2017-05-19 10:29:50
0
4
1712
  • J'ai trouvé beaucoup d'informations, et l'essai d'utilisation des routeurs n'est rien de plus que les deux suivants :

//指定跳转到user页面,可带参数
router.go({name: 'user', params: {userId: 1}});

//不知道页面名,按历史记录跳转到上一页(这种情况应该怎么带参数???)
router.go(-1);
我想大声告诉你
我想大声告诉你

répondre à tous(4)
黄舟

Le problème est résolu ! (Il ne s'agit pas d'une opération de rollback, donc les paramètres ne peuvent pas être pris. Si nécessaire, référez-vous à cette méthode)

Besoins des entreprises

  • Je travaille actuellement sur un produit Internet destiné aux services de soins aux personnes âgées. Vous pouvez accéder à la page « Liste des hôpitaux » sur plusieurs pages, sélectionner l'hôpital que vous souhaitez desservir, puis revenir en arrière. Par exemple, « Accueil » et « Rendez-vous » peuvent accéder à la page « Hôpital ».

Cela signifie "page de liste d'hôpital". Vous ne savez pas ou n'avez pas besoin de savoir à quelle page se trouvait la dernière page que vous avez visitée. Il vous suffit de sélectionner l'hôpital et de revenir.
Bien sûr, vous pouvez également indiquer à la page de liste des hôpitaux quel est le nom de la page précédente en passant des paramètres, puis revenir en arrière. Mais s'il y a trop de pages, imaginez combien de codes de jugement il y aura sur la page de la liste des hôpitaux ?



Solution

1. Déclarez un module Vue vide eventBus eventBus
import Vue from 'vue'

/**
 * 定义空的vue实例,作为 eventbus实现非父子组件之间的通信(vue2.x中去掉了broadcast)
 */
var eventBus = new Vue({});
export default eventBus;
2. “医院列表页”通过eventBus.$emit
import eventBus from '../service/eventbus.js';

methods:{
    //列表选中具体医院的点击事件
    goback(hospital){
        //传递一个map,choiceHospital是key,hospital是value
        eventBus.$emit('choiceHospital',hospital);
        //调用router回退页面
        this.$router.go(-1);
    }
}
2. La "Page de liste des hôpitaux" transmet les paramètres à la page précédente via eventBus.$emit
import eventBus from '../service/eventbus.js';

//每次激活时
activated(){
    //根据key名获取传递回来的参数,data就是map
    eventBus.$on('choiceHospital', function(data){
        //赋值给首页的附近医院数据模型
        this.nearestOrg = data;
    }.bind(this));
},
3. Les pages « Accueil » et « Réservation » reçoivent des paramètres

rrreee

Référence
  • Comment communiquer entre les composants vue non-parent-enfant
🎜
给我你的怀抱

Cela va à l'encontre du sens des enregistrements historiques. S'il est accessible avec des paramètres, il doit être transmis.

De plus, SPA n'a pas de problème de transmission de données. Pourquoi la retraite doit-elle avoir des paramètres ?

仅有的幸福

Site officiel grouter.go(-1) // Revenir en arrière d'une étape pour enregistrer, ce qui équivaut à history.back() Il ne peut pas prendre de paramètres
2 solutions : 1. Passer à la précédente. page en utilisant le routage, au lieu de renvoyer 2. Le partage des données peut être réalisé via store ou vuex.

某草草

N'utilisez-vous pas this.$router.back() pour revenir en arrière par vous-même ? Avez-vous besoin de déterminer d'où il vient ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal