Heim > Web-Frontend > View.js > Ein Artikel, der die grundlegende Verwendung der berechneten Eigenschaften von VUEX-Gettern analysiert

Ein Artikel, der die grundlegende Verwendung der berechneten Eigenschaften von VUEX-Gettern analysiert

藏色散人
Freigeben: 2022-08-10 14:35:51
nach vorne
2043 Leute haben es durchsucht

Möglicherweise müssen wir nach Änderungen einige Attribute verwenden. Zu diesem Zeitpunkt können wir Getter verwenden:

Fallbeispiele: Derzeit hoffen wir, dass die Daten in den folgenden Fällen einen Gesamteffekt erzielen können Preis [Verwandte Empfehlung: vue .js Video-Tutorial]

Da andere Seiten möglicherweise auch diese Art der logischen Berechnung verwenden, können sie mithilfe des Getters-Attributs verwaltet werden

   getters:{
    //里面会传过来一些参数state
    totalPrice(state){
         let  totalPrice=0 //默认0
         for(const book of state.books){ //对这个数组做一个遍历
            totalPrice+=books.count * books.price
         }
         return totalPrice
    }
   },
Nach dem Login kopieren

Wenn die Seite diese Funktion zum Aufrufen verwendet es direkt

  <p>总价值:{{$store.getters.totalPrice}}</p>
Nach dem Login kopieren

Über Getter Andere Erklärungen

(1) Über Getter Der zweite Parameter wird verwendet, um andere Funktionen in Gettern aufzurufen

Versuchen Sie, die Daten in der Ansicht zu vereinfachen

vue2 gewöhnlich Einer der Methoden-Getter, die in der OptionsAPI verwendet werden groß. Zu diesem Zeitpunkt können wir die Hilfsfunktion mapGetters

verwenden, um uns bei der Implementierung dieser Logik zu helfen. ?? Wird auf herkömmliche Weise angezeigt:

<template>
    <div>
    <p>总价值:{{totalPrice}}</p>
    </div>
</template>
<script>
import {useStore} from &#39;vuex&#39;
    export default {
     computed:{
         totalPrice(){
             this.$store.getters.totalPrice
       }
     } 
    }
</script>
Nach dem Login kopieren

Komplexe Logikebenen können mithilfe von Hilfsfunktionen mapGetters implementiert werden, oder sie können in Hooks gekapselt werden, eine neue Mapgeters-Bibliothek erstellen und den folgenden Code darin schreiben

html:
<template>
    <div>
    <p>总价值:{{totalPrice}}</p>
      <p>哈哈哈:{{infoname}}</p>
    </div>
</template>
js:
<script>
// 引入辅助函数
import {mapGetters} from &#39;vuex&#39;
    export default { 
     computed:{
        //  使用辅助函数
         ...mapGetters(["totalPrice","infoname"])
     }
    }
</script>
Nach dem Login kopieren

Verwenden Sie die page Methode:

<template>
    <div>
    <p>{{totalPrice}}</p>
    </div>
</template>
<script>
import {useStore} from &#39;vuex&#39;
import {computed} from &#39;vue&#39;
    export default { 
        setup(){
            const useStore=useStore()
            const totalPrice=computed(()=>store.getters.totalPrice)
            return{
             totalPrice
            }
        }
    }
</script>
Nach dem Login kopieren

Da wir beim Kapseln der entsprechenden Hooks zuvor auf denselben Code gestoßen sind, können wir jetzt weiterhin denselben Code extrahieren, eine sekundäre Kapselung vornehmen und einen neuen useMapper in den Hooks js erstellen , schreiben Sie

//hook 就是函数而已  这里封装一些公共的方法
import { computed } from &#39;vue&#39;
import {mapGetters,useStore} from &#39;vuex&#39;
export function useGetters(mapper){
// 拿到这个useStore对象
 const store=useStore()
//获取到对应的对象的functions:{name:function,age:function,height:function}
 const storeStateFns=mapGetters(mapper) //这里需要到时候用户传入的数组
//对数据进行转换
const storegetters={}//现在全部转成{name:ref,age:ref,height:ref放在这个里面了}
// 遍历拿到我们的key
Object.keys(storeStateFns).forEach(fnKey=>{
    //取出具体的函数
    const fn=storeStateFns[fnKey].bind({$store:store}); //这里的store 就是我们拿到的useStore
    //用computed 函数做一个包裹;
     storegetters[fnKey]=computed(fn)
})
return storegetters
}
Nach dem Login kopieren
in die entsprechende Datei und führen Sie die öffentliche Methode ein
<template>
    <div>
    <p>{{totalPrice}}</p>
    </div>
</template>
<script>
import {useGetters} from &#39;../hooks/hook&#39;
import{useStore} from &#39;vuex&#39;
    export default { 
        setup(){
            const useGetters=useGetters(["totalPrice","nameIfo"])
            return{
           ...useGetters
            }
        }
    }
</script>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEin Artikel, der die grundlegende Verwendung der berechneten Eigenschaften von VUEX-Gettern analysiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage