vuemp
v0.0.8
Published
Universal Vue.js apps with server-side Vuex state
Downloads
3
Readme
Vuemp (Vue-Multiplayer)
Vuemp lets you build universal Vue.js apps that maintain copies of your user's Vuex store server-side, with the ability to manipulate them in real-time using standard Vuex actions and mutators directly inside the server process.
It hooks into the way actions and mutations are handled by Vuex and changes it in the following way:
- Actions are not being handled on the client anymore. Instead, they get dispatched to the server.
- Mutations are performed on both the client side and the server-side
Features
This project is a fork of REAM, so it has all its features, plus:
- Server-side Vuex state management
Install
npm install vuemp
Usage
To get started, add the following scripts to your package.json
file.
{
"scripts": {
"build": "vuemp build",
"start": "vuemp start",
"dev": "vuemp dev"
}
}
Then populate an src/index.js
in your current working directory. It should export a router
and store
instance:
// Create a router configuration object
const createRouter = (context) => ({
routes: [{
path: '/',
component: () => import('./Home.vue')
}]
})
// Create a store configuration object
const createStore = (context) => ({
state: {
profile: {
name: 'nobody'
}
},
mutations: {
setName (state, payload) {
state.profile.name = payload
}
}
})
export default { createRouter, createStore }
Run npm run dev
to start development server.
Now, when you mutate the store on the client, you will also see the mutation on the server's stdout.
To run in production server, run npm run build && npm start
Protocol
Mutations and actions are exchanged between client and server via simple socket.io messages.
(docs coming soon)
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Authors
vuemp © buhrmi, Released under the MIT License. Authored and maintained by buhrmi
ream © egoist, Released under the MIT License. Authored and maintained by egoist with help from contributors (list).