vuex實現簡易計數器
更新時間:2021年06月24日 15:25:27 作者:SikiChan
這篇文章主要為大家詳細介紹了vuex實現一個簡易計數器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了vue.js計數器的制作方法,供大家參考,具體內容如下
src/components
Hello.vue
<template>
<div class="hello">
<h1>Now count is {{counterValue}}</h1>
<br>
</div>
</template>
<script>
import { getCount } from '../vuex/getters'
export default {
vuex: {
getters: {
counterValue: getCount
}
},
data () {
return {
}
}
}
</script>
<style scoped>
h1 {
color: #42b983;
}
</style>
Increate.vue
<template>
<div>
<button @click='increment' class="btn btn-success">click me + 3</button>
<button @click='reduce' class="btn btn-warning">click me - 1</button>
</div>
</template>
<script>
import { incrementCounter, reduceCounter } from '../vuex/action'
export default {
vuex: {
actions: {
increment: incrementCounter,
reduce: reduceCounter
}
},
data: function () {
return {
}
},
computed: {},
ready: function () {},
attached: function () {},
methods: {},
components: {}
}
</script>
<style lang="css">
</style>
src/vuex
store.js
import Vue from 'vue'
import Vuex from 'Vuex'
Vue.use(Vuex)
const state = {
count: 0
}
const mutations = {
INCREMENT (state, n) {
state.count = state.count + n
},
REDUCE (state) {
state.count--
}
}
export default new Vuex.Store({
state,
mutations
})
action.js
export const incrementCounter = ({dispatch}) => dispatch('INCREMENT', 3)
export const reduceCounter = ({dispatch}) => dispatch('REDUCE')
getters.js
export function getCount (state) {
return state.count
}
src/App.vue
<template>
<div id="app">
<img class="logo" src="./assets/logo.png">
<hello></hello>
<increate></increate>
</div>
</template>
<script>
import Hello from './components/Hello'
import Increate from './components/Increate'
import store from './vuex/store'
export default {
store,
components: {
Hello, Increate
}
}
</script>
<style>
html {
height: 100%;
}
body {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
#app {
color: #2c3e50;
margin-top: -100px;
max-width: 600px;
font-family: Source Sans Pro, Helvetica, sans-serif;
text-align: center;
}
#app a {
color: #42b983;
text-decoration: none;
}
.logo {
width: 100px;
height: 100px
}
</style>
src/main.js
// 入口文件
import Vue from 'vue'
import App from './App'
import VueRouter from 'vue-router'
import VueResource from 'vue-resource'
/* eslint-disable import VueRouter from 'vue-router'no-new */
new Vue({
el: 'body',
components: { App }
})
Vue.use(VueRouter)
Vue.use(VueResource)
var router = new VueRouter({
hashbang: false, // 設置為true時,所有的路徑都會被格式化為#!開頭
history: true // 默認false,利用history.pushState(), history.replaceState()來管理瀏覽歷史記錄
})
// require('./routers')(router)
router.start(App, '#app')
效果圖:

本文已被整理到了《Vue.js前端組件學習教程》,歡迎大家學習閱讀。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決Vue keep-alive 調用 $destory() 頁面不再被緩存的情況
這篇文章主要介紹了解決Vue keep-alive 調用 $destory() 頁面不再被緩存的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
vue點擊按鈕動態(tài)創(chuàng)建與刪除組件功能
這篇文章主要介紹了vue點擊按鈕動態(tài)創(chuàng)建與刪除組件功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
vue自定義插件封裝,實現簡易的elementUi的Message和MessageBox的示例
這篇文章主要介紹了vue自定義插件封裝,實現簡易的elementUi的Message和MessageBox的示例,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2020-11-11

