vuex實(shí)現(xiàn)簡易計(jì)數(shù)器
本文實(shí)例為大家分享了vue.js計(jì)數(shù)器的制作方法,供大家參考,具體內(nèi)容如下
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, // 設(shè)置為true時(shí),所有的路徑都會被格式化為#!開頭
history: true // 默認(rèn)false,利用history.pushState(), history.replaceState()來管理瀏覽歷史記錄
})
// require('./routers')(router)
router.start(App, '#app')
效果圖:

本文已被整理到了《Vue.js前端組件學(xué)習(xí)教程》,歡迎大家學(xué)習(xí)閱讀。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue讀取本地的excel文件并顯示在網(wǎng)頁上方法示例
這篇文章主要介紹了vue讀取本地的excel文件并顯示在網(wǎng)頁上方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
vue項(xiàng)目引入本地bootstrap不生效問題及解決
這篇文章主要介紹了vue項(xiàng)目引入本地bootstrap不生效問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
Vue+Element UI實(shí)現(xiàn)概要小彈窗的全過程
彈窗效果是我們?nèi)粘i_發(fā)中經(jīng)常遇到的一個(gè)功能,下面這篇文章主要給大家介紹了關(guān)于Vue+Element UI實(shí)現(xiàn)概要小彈窗的相關(guān)資料,需要的朋友可以參考下2021-05-05
vue如何將base64流數(shù)據(jù)轉(zhuǎn)成pdf文件并在新頁面打開
這篇文章主要介紹了vue如何將base64流數(shù)據(jù)轉(zhuǎn)成pdf文件并在新頁面打開問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
vue3使用useDialog實(shí)現(xiàn)對話框的示例代碼
在日常開發(fā)中,彈窗是常見的一個(gè)功能,本文主要介紹了vue3使用useDialog實(shí)現(xiàn)對話框的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
vue項(xiàng)目打包后請求地址錯(cuò)誤/打包后跨域操作
這篇文章主要介紹了vue項(xiàng)目打包后請求地址錯(cuò)誤/打包后跨域操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
vue:axios請求本地json路徑錯(cuò)誤問題及解決
這篇文章主要介紹了vue:axios請求本地json路徑錯(cuò)誤問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06

