这篇文章主要为大家详细介绍了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前端组件学习教程》,欢迎大家学习阅读。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。 |