最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vuex如何修改狀態(tài)state的方法

 更新時間:2024年08月31日 09:44:42   作者:明月松江  
這篇文章主要介紹了vuex如何修改狀態(tài)state的方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vuex修改狀態(tài)state方法

vuex想要改變state里的屬性,官方推薦的方法是通過mutaion的方式修改state。

例如:

store.js

const state = {
  num:0
}
const mutations = {
  SET_NUM(state, payload) {
    state.num= payload;
  },
}
export default new Vuex.Store({
  state,
  mutations
})
<template>
  ...
</template>
<script>
  export default{
    data(){
      return{
        num:1
      }
    },
    methods:{
	  doSomething(){
	    this.$store.commit('SET_NUM',this.num);
	  }	
	}
  }
</script>

在組件里直接修改state也是生效的,例如:

 doSomething(){
   this.$store.state.num = this.num;
 }	

但是不推薦這種直接修改state的方式,因為這樣不能使用vuex的瀏覽器插件來跟蹤狀態(tài)的變化,不利于調(diào)試。

vuex state使用/教程/實例

說明

  • 本文用示例介紹Vuex的五大核心之一:state。

官網(wǎng)

state概述

單一狀態(tài)樹

  • Vuex 使用單一狀態(tài)樹:用一個對象就包含了全部的應(yīng)用層級狀態(tài)。它作為一個“唯一數(shù)據(jù)源。這也意味著,每個應(yīng)用將僅僅包含一個 store 實例。
  • 單一狀態(tài)樹讓我們能夠直接地定位任一特定的狀態(tài)片段,在調(diào)試的過程中也能輕易地取得整個當(dāng)前應(yīng)用狀態(tài)的快照。
  • 存儲在 Vuex 中的數(shù)據(jù)和 Vue 實例中的 data 遵循相同的規(guī)則,例如狀態(tài)對象必須是純粹 (plain) 的。

響應(yīng)式

state存放的數(shù)據(jù)是響應(yīng)式的:如果store的數(shù)據(jù)改變,依賴這個數(shù)據(jù)的組件也會更新。

用法

直接使用

// 在JS中使用
this.$store.state.變量名        // 不分模塊
this.$store.state.模塊名.變量名 // 分模塊//在模板上使用
$store.state.變量名        // 不分模塊
$store.state.模塊名.變量名 // 分模塊

mapState

import { mapState } from 'vuex'
export default {
    computed: {
        ...mapState(['state屬性名'])              // 不分模塊,不修改屬性名
        ...mapState({'新屬性名稱':'state屬性名'}) // 不分模塊,修改屬性名
        ...mapState('模塊名', ['state屬性名'])    // 分模塊,不修改屬性名
    }
}

示例

代碼

CouterStore.js

import Vue from 'vue';
import Vuex from 'vuex';Vue.use(Vuex);
const counterStore = new Vuex.Store(
    {
        state: {
            count: 10
        },
    }
);export default counterStore;

Parent.vue

<template>
  <div class="outer">
    <h3>父組件</h3>
    <component-b></component-b>
  </div>
</template><script>
import ComponentB from "./ComponentB";export default {
  name: 'Parent',
  components: {ComponentB},
}
</script><style scoped>
.outer {
  margin: 20px;
  border: 2px solid red;
  padding: 20px;
}
</style>

ComponentB.vue(組件)

<template>
  <div class="container">
    <h3>ComponentB</h3>
    計數(shù)器的值:{{thisCount}}
    <!--也可以這么寫:-->
    <!--計數(shù)器的值:{{this.$store.state.count}}-->
  </div>
</template><script>
export default {
  computed:{
    thisCount() {
      return this.$store.state.count;
    }
  }
}
</script><style scoped>
.container {
  margin: 20px;
  border: 2px solid blue;
  padding: 20px;
}
</style>

路由(router/index.js)

import Vue from 'vue'
import Router from 'vue-router'
import Parent from "../components/Parent";Vue.use(Router)export default new Router({
  routes: [
    {
      path: '/parent',
      name: 'Parent',
      component: Parent,
    }
  ],
})

測試

訪問:http://localhost:8080/#/parent

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue二級彈窗關(guān)閉錯誤的解決指南

    Vue二級彈窗關(guān)閉錯誤的解決指南

    本文詳細(xì)分析了Vue.js項目中二級彈窗關(guān)閉時出現(xiàn)的DOM操作錯誤原因,并提供了多種解決方案,包括確保正確的DOM操作時機、處理過渡動畫、管理動態(tài)組件和清理異步操作等,通過這些方法,可以有效預(yù)防和解決此類問題,提升應(yīng)用的穩(wěn)定性和性能,需要的朋友可以參考下
    2026-01-01
  • 解決Vue + Echarts 使用markLine標(biāo)線(precision精度問題)

    解決Vue + Echarts 使用markLine標(biāo)線(precision精度問題)

    這篇文章主要介紹了解決Vue + Echarts 使用markLine標(biāo)線(precision精度問題),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue3項目中引入html頁面的方法舉例

    Vue3項目中引入html頁面的方法舉例

    這篇文章主要給大家介紹了關(guān)于Vue3項目中引入html頁面的相關(guān)資料,Vue3是一個JavaScript框架,通常我們使用它來構(gòu)建單頁應(yīng)用程序(SPA),如果你想在HTML頁面中使用Vue3,可以參考這篇文章,需要的朋友可以參考下
    2023-09-09
  • vue3使用vuedraggable和grid實現(xiàn)自定義拖拽布局方式

    vue3使用vuedraggable和grid實現(xiàn)自定義拖拽布局方式

    這篇文章主要介紹了vue3使用vuedraggable和grid實現(xiàn)自定義拖拽布局方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Vue項目報錯:Uncaught?SyntaxError:?Unexpected?token?'<'的解決方法

    Vue項目報錯:Uncaught?SyntaxError:?Unexpected?token?'<&a

    最近在做vue項目時,需要引入一個第三方的js文件,在index.html中通過以下方式引入JS文件編譯后就報了這個問題,這篇文章主要給大家介紹了關(guān)于Vue項目報錯:Uncaught?SyntaxError:?Unexpected?token?'<'的解決方法,需要的朋友可以參考下
    2022-08-08
  • vue中的el-tooltip提示黑框遮擋問題

    vue中的el-tooltip提示黑框遮擋問題

    這篇文章主要介紹了vue中的el-tooltip提示黑框遮擋問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Vue computed實現(xiàn)原理深入講解

    Vue computed實現(xiàn)原理深入講解

    computed又被稱作計算屬性,用于動態(tài)的根據(jù)某個值或某些值的變化,來產(chǎn)生對應(yīng)的變化,computed具有緩存性,當(dāng)無關(guān)值變化時,不會引起computed聲明值的變化。產(chǎn)生一個新的變量并掛載到vue實例上去
    2022-10-10
  • 快速了解Vue父子組件傳值以及父調(diào)子方法、子調(diào)父方法

    快速了解Vue父子組件傳值以及父調(diào)子方法、子調(diào)父方法

    這篇文章主要介紹了Vue父子組件傳值以及父調(diào)子方法、子調(diào)父方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Vue封裝全局toast組件的完整實例

    Vue封裝全局toast組件的完整實例

    組件(Component)是 Vue.js 最強大的功能之一,組件可以擴展 HTML 元素,封裝可重用的代碼,這篇文章主要給大家介紹了關(guān)于Vue封裝全局toast組件,需要的朋友可以參考下
    2021-07-07
  • Vue中的偵聽器及使用場景

    Vue中的偵聽器及使用場景

    Vue中的偵聽器是一種響應(yīng)式機制,可以對指定的數(shù)據(jù)進行監(jiān)聽,并在數(shù)據(jù)變化時執(zhí)行相應(yīng)的回調(diào)函數(shù)。常用于監(jiān)聽復(fù)雜數(shù)據(jù)類型的變化,如對象和數(shù)組。通過偵聽器,可以實現(xiàn)數(shù)據(jù)的自動更新和邏輯處理等功能,提高代碼的可讀性和可維護性
    2023-05-05

最新評論

嘉义县| 乐山市| 龙州县| 衡南县| 宜兴市| 沙河市| 磐安县| 江门市| 鄂尔多斯市| 车险| 宜春市| 南澳县| 郁南县| 闽侯县| 蒙自县| 循化| 东明县| 任丘市| 鸡泽县| 黎平县| 义马市| 宁蒗| 万盛区| 沁阳市| 潞西市| 锦州市| 福泉市| 宜州市| 黄山市| 军事| 嘉善县| 蒙山县| 海丰县| 丹巴县| 教育| 塘沽区| 湖口县| 宜兰县| 定安县| 神池县| 万载县|