javascript - Bagaimana untuk mengambil parameter apabila kembali ke vue-router go(-1)?
我想大声告诉你
我想大声告诉你 2017-05-19 10:29:50
0
4
1727
  • Saya telah menemui banyak maklumat, dan penggunaan percubaan penghala tidak lebih daripada dua yang berikut:

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

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

membalas semua(4)
黄舟

Masalah telah selesai! (Ia bukan operasi rollback, jadi parameter tidak boleh diambil. Jika perlu, rujuk kaedah ini)

Keperluan perniagaan

  • Saya sedang mengusahakan produk Internet untuk perkhidmatan penjagaan warga emas Anda boleh memasuki halaman "Senarai Hospital" pada berbilang halaman, pilih hospital yang anda ingin berkhidmat, dan kemudian kembali. Sebagai contoh, kedua-dua "Rumah" dan "Temujanji" boleh memasuki halaman "Hospital".

Ini bermaksud "halaman senarai hospital". Anda tidak tahu atau perlu tahu halaman mana yang terakhir anda lawati. Anda hanya perlu memilih hospital dan kembali.
Sudah tentu, anda juga boleh memberitahu halaman senarai hospital apa nama halaman sebelumnya dengan melepasi parameter, dan kemudian kembali. Tetapi jika terdapat terlalu banyak halaman, bayangkan berapa banyak kod penghakiman yang akan ada pada halaman senarai hospital?



Penyelesaian

1 Isytihar modul Vue 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. "Halaman senarai hospital" menghantar parameter ke halaman sebelumnya melalui eventBus.$emit
import eventBus from '../service/eventbus.js';

//每次激活时
activated(){
    //根据key名获取传递回来的参数,data就是map
    eventBus.$on('choiceHospital', function(data){
        //赋值给首页的附近医院数据模型
        this.nearestOrg = data;
    }.bind(this));
},
3. Halaman "Rumah" dan "Tempahan" menerima parameter

rrreee

Rujukan
  • Cara berkomunikasi antara komponen bukan ibu bapa dan anak
🎜
给我你的怀抱

Ini bertentangan dengan maksud rekod sejarah Jika ia diakses dengan parameter, ia harus ke hadapan.

Selain itu, SPA tidak mempunyai masalah penghantaran data Mengapa retreat perlu ada parameter?

仅有的幸福

Tapak web rasmi grouter.go(-1) // Kembali satu langkah untuk merakam, yang bersamaan dengan history.back(). halaman menggunakan penghalaan , bukannya kembali 2. Perkongsian data boleh dicapai melalui kedai atau vuex.

某草草

Tidakkah anda menggunakan ini.$router.back() untuk kembali sendiri Adakah anda perlu menentukan dari mana asalnya?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan