Rumah > hujung hadapan web > View.js > Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex

Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex

藏色散人
Lepaskan: 2022-08-10 14:47:30
ke hadapan
3009 orang telah melayarinya

kemas kini status mutasi

Satu-satunya cara untuk mengemas kini status kedai dalam vuex: Serahkan Mutasi

Mutasi terutamanya terdiri daripada dua bahagian:

  • Jenis peristiwa rentetan (jenis)

  • Fungsi panggil balik (pengendali), satu parameter fungsi panggil balik adalah keadaan
    Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex

mutasi yang melepasi parameter

Apabila mengemas kini data melalui mutasi, kita mungkin perlu membawa beberapa parameter tambahan
Parameter dipanggil mutasi dan merupakan muatan

Contoh: Butang pertama mengklik kaunter 5, butang kedua mengklik kaunter 10

Fail App.vue

<button>+5</button>
<button>+10</button>
Salin selepas log masuk

indeks Fail .js dalam fail kedai

 mutations: {
    incrementCount(state, count) {
      state.counter += count
    }
  },
Salin selepas log masuk

Fail App.vue

methods: {
    addCount(count) {
      this.$store.commit("incrementCount", count);
    }
  }
Salin selepas log masuk

gaya penyerahan mutasi

Gaya penyerahan biasa

this.$store.commit("incrementCount", count);
Salin selepas log masuk

Serahkan seperti ini Jika anda mencetak kiraan, anda akan mendapat kiraan

incrementCount(state, count) {
      // state.counter += count
      console.log(count);
    }
Salin selepas log masuk

Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex
Gaya penyerahan istimewa

this.$store.commit({
        type: "incrementCount",
        count
      });
Salin selepas log masuk
Salin selepas log masuk

Jika anda mencetak kiraan, anda akan mendapat objek

    incrementCount(state, count) {
      // state.counter += count
      console.log(count);
    }
Salin selepas log masuk

Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex, jadi ini lebih sesuai dalam mutasi

incrementCount(state, payload) {
      state.counter += payload.count
      console.log(payload.count);
    }
Salin selepas log masuk

Apl Serah dalam vue

this.$store.commit({
        type: "incrementCount",
        count
      });
Salin selepas log masuk
Salin selepas log masuk

peraturan tindak balas mutasi

Keadaan dalam vuex adalah responsif Apabila data dalam keadaan berubah, komponen vue akan dikemas kini secara automatik.

Apabila kita menukar nilai dalam objek asal, halaman itu juga akan berubah

state: {
    info: {
      name: 2401,
      age: 18
    }
  },
   mutations: {
    // 改变info中的值
    infoChange(state) {
      state.info.age = 10
    }
  },
Salin selepas log masuk

Dalam App.vue

<h2>{{$store.state.info}}</h2>
<button>infoChange</button>
Salin selepas log masuk
 infoChange() {
      this.$store.commit("infoChange");
    }
Salin selepas log masuk

Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex
Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex
Tambah nilai pada objek asal

Tidak boleh melakukan kaedah responsif

state.info['address'] = '地球';
Salin selepas log masuk

Malah, alamat telah ditambahkan pada maklumat, tetapi kaedah ini tidak boleh responsif, jadi ia tidak dipaparkan pada halamanPenjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri VuexKaedah responsif

Vue.set(state.info, "address", '地球');
Salin selepas log masuk

Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex
Padamkan nilai dalam objek asal

Tidak boleh melakukan kaedah responsif

delete state.info.age;
Salin selepas log masuk

Malah Umur dalam maklumat telah dipadamkan, tetapi kaedah ini tidak boleh responsif, jadi masih ada umur
Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex
kaedah responsif

Vue.delete(state.info, "age")
Salin selepas log masuk

pada halaman Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex

jenis pemalar mutasi

Syor rasmi adalah untuk mentakrifkan nama kaedah dalam mutasi sebagai pemalar, yang kurang terdedah kepada ralat dan lebih mudah untuk mengurus dan menyelenggara

di bawah fail stor Cipta jenis mutasi fail .js, simpan pemalar

export const INCREMENT = "increment"
export const DECREMENT = "decrement"
Salin selepas log masuk

, importnya dalam fail index.js di bawah fail kedai dan gunakan

import {
  INCREMENT,
  DECREMENT
} from "../store/mutations-type"
Salin selepas log masuk
 mutations: {
    [INCREMENT](state) {
      state.counter++;
    },
    [DECREMENT](state) {
      state.counter--;
    },
  }
Salin selepas log masuk

dalam Import fail App.vue dan gunakan

import { INCREMENT, DECREMENT } from "../src/store/mutations-type";
Salin selepas log masuk
methods: {
    add() {
      this.$store.commit(INCREMENT);
    },
    sub() {
      this.$store.commit(DECREMENT);
    },
   }
Salin selepas log masuk

[Pengesyoran berkaitan: tutorial video vue.js]

Atas ialah kandungan terperinci Penjelasan terperinci tentang penggunaan Mutasi dalam pengurusan negeri Vuex. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan