Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment prendre les paramètres lors du retour dans Vue-Router Go(-1)?

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

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

répondre à tous(4)je répondrai

  • 黄舟

    黄舟2017-05-19 10:31:50

    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
    🎜

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:31:50

    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 ?

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:31:50

    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.

    répondre
    0
  • 某草草

    某草草2017-05-19 10:31:50

    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 ?

    répondre
    0
  • Annulerrépondre