国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

vue js Push-Parameter an URL
P粉316890884
P粉316890884 2024-03-28 19:43:37
0
1
546

Ich verwende vuejs 3 und m?chte Produkte filtern. Im ersten Schritt m?chte ich Parameter an die URL senden und verwende dafür den Vue-Router. Derzeit sendet mein Filter nur einen Parameter an die URL jeder Gruppe, aber ich m?chte alle Parameter der ersten Gruppe an die URL anh?ngen und von der zweiten Gruppe m?chte ich nur einen Parameter an die URL (mittel oder gro?) pushen

Wenn ich Rot und mittlere Gr??e ausw?hle, sieht mein Filter so aus localhost:8080/filter?color=red&size=medium . Wenn ich jedoch zwei Farben ausw?hle, sollten beide Farben angeh?ngt werden und meine URL sollte wie folgt lauten localhost:8080/filter?color=red&color=blue&size=mediumlocalhost:8080/filter?color=red&color=blue&size=large

<template>
            <div class="products">
                <div class="multi_filters">
                    <h1>Multi Filter By Color</h1>
                    <a href="#" @click.prevent="activateFilter('color','red')">Red color</a>
                    <a href="#"  @click.prevent="activateFilter('color','blue')">Blue color</a>
                </div>
    
                <div class="single_filter">
                    <h1>Multi Size</h1>
                    <a href="#" @click.prevent="activateFilter('size','medium')">Medium</a>
                    <a href="#"  @click.prevent="activateFilter('size','large')">Large</a>
                </div>
    
            </div>
        </template>
       <script>
                export default {
                    data() {
                        return {
                            filters:{},
                            selectedFilters:{}
                        }
                    },
                    methods:{
                        activateFilter(key,value){
                            this.selectedFilters = Object.assign({},this.selectedFilters,{[key]:value})
                            console.log(this.selectedFilters)
                            this.$router.replace({
                                query: {
                                    ...this.selectedFilters
                                }
                            })
                        }
                    }
                
                }
            </script>

P粉316890884
P粉316890884

Antworte allen(1)
P粉434996845

您應(yīng)該為這個(gè)應(yīng)用程序創(chuàng)建數(shù)據(jù),如下所示,urlParams 以便每次有人點(diǎn)擊顏色或尺寸并推送到它時(shí)獲取數(shù)據(jù)。

data() {
    return {
      colors: [{id:1, name: "red" }, {id:2, name: "blue" }],
      sizes: [{id:1, name: "medium" }, {id:2, name: "large" }],
      urlParams: []
    };
  },

還有一些方法:

methods: {
    activateFilter(e) {
      //get color or size with condition not exist.
      if(!this.urlParams.includes(e)){
        this.urlParams.push(e);
      }

      //create params url
      const urlParam = this.urlParams.reduce((contains, current) => {
        if(this.createArrName(this.colors).indexOf(current) > -1){
          return contains += `color=${current}&`
        }else{
          return contains += `size=${current}&`
        }
      }, '')

      //adapt to url
    },
    createArrName(arrs) {
      return arrs.reduce((contains, current) => {
        return contains.concat(current.name)
      }, []) 
    }
  },

您編寫顏色和尺寸循環(huán)的模板:

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage