cari

Rumah  >  Soal Jawab  >  teks badan

Alih keluar item pertanyaan daripada penghala

<p>Saya menggunakan kaedah <code>replace</code> dalam Vue untuk menambah <code>query</code> Jika nilai itu tidak wujud, saya tetapkan ia sebagai <code>undefined</code>. </p> <pre class="brush:js;toolbar:false;">this.$router.replace({ nama: "admin-frs", pertanyaan: { had: this.pageSize, halaman: this.currentPage, sort: this.sortbyapi ||. bahasa: this.sortbyapiLang ||. }, }) </pra> <p>Ini akan menyebabkan item pertanyaan hilang daripada URL apabila data pertanyaan dikemas kini, yang boleh diterima. </p> <p>Tetapi ia tidak mengeluarkannya daripada objek pertanyaan. </p> <p>Adakah ada cara yang lebih baik daripada ini? </p> <p>Selain itu, adakah mungkin untuk mendapatkan item pertanyaan daripada laluan, seperti <code>&limit=10...etc</code>? </p>
P粉005134685P粉005134685519 hari yang lalu535

membalas semua(1)saya akan balas

  • P粉982009874

    P粉9820098742023-08-26 00:16:34

    Jika saya faham dengan betul, OP mahu operasi itu dihantar ke objek pertanyaan router.replace. Boleh dilaksanakan menggunakan js standard.

    Pertama, namakan pembolehubah pertanyaan secara eksplisit...

    let query = $router.query;

    Untuk memadamkan atribut, anda boleh menggunakan operator padam js. Contohnya, untuk mengalih keluar query.limit...

    // 删除limit属性
    if (!this.pageSize) delete query.limit;

    Sebagai alternatif, jika anda membina pertanyaan ini, anda tidak boleh menambah atribut had di tempat pertama...

    let query = {};
    if (this.pageSize) query.limit = this.pageSize;
    if (this.currentPage) query.page = this.currentPage;
    // 其他属性也是类似的处理
    // query现在只包含上述选择的属性

    Selepas melakukan mana-mana operasi ini, hantarkan pembolehubah ke penghala...

    $router.replace({ name: "admin-frs", query });

    Untuk menukarnya kepada rentetan, mungkin terdapat beberapa cara, termasuk daripada banyak perpustakaan yang mungkin anda miliki, tetapi cara aslinya ialah...

    let params = [];
    for (let key in query)
      params.push(`${encodeURIComponent(key)}=${encodeURIComponent(query[key])}`);
    const queryString = params.join("&");

    balas
    0
  • Batalbalas