
vuex的作用
复制代码

通过发送ajax请求,获取书籍信息渲染到页面并算出总价
store/index.js
复制代码
import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
},
mutations: {
},
getters: {
},
actions: {
},
modules: {
books: {
namespaced: true,
state: { pir: [] },
getters: {
totalPrice: function (state) {
let sum = 0
state.pir.forEach(item => {
sum += item.price
})
return sum
}
},
mutations: {
setBooks (state, newBooks) {
state.pir = newBooks
}
},
actions: {
add: function (context) {
axios({
url: 'https://www.fastmock.site/mock/37d3b9f13a48d528a9339fbed1b81bd5/book/api/books'
}).then(res => {
context.commit("setBooks", res.data.data)
})
}
},
}
}
})
export default store
复制代码
main.js
复制代码
import Vue from 'vue'
import App from './App.vue'
import store from './store'
Vue.config.productionTip = false
new Vue({
store,
render: h => h(App),
}).$mount('#app')
复制代码
APP.vue
复制代码
<template>
<div id="app">
<p v-for="(item, index) in $store.state.books.pir" :key="index">
{{ item.name }}:{{ item.price }}
</p>
合计:{{ $store.getters["books/totalPrice"] }}
</div>
</template>
<script>
export default {
created () {
this.$store.dispatch('books/add')
}
}
</script>
<style>
</style>
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END























![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)