Skip to content

Commit 1f033ae

Browse files
committed
Add vuex support
1 parent 67762fb commit 1f033ae

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hypernova-vue",
3-
"version": "1.0.0",
3+
"version": "1.1.0",
44
"description": "Vue bindings for Hypernova",
55
"main": "lib/index.js",
66
"author": "Felipe Guizar Diaz <felipegaiacharly@gmail.com>",

src/index.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,39 @@ export const renderVue = (name, Component) => hypernova({
3636
return Component;
3737
},
3838
});
39+
40+
41+
export const renderVuex = (name, Component) => hypernova({
42+
server() {
43+
return async (propsData) => {
44+
const vm = new Component({
45+
propsData,
46+
});
47+
48+
const renderer = createRenderer();
49+
50+
const contents = await renderer.renderToString(vm);
51+
52+
return serialize(name, contents, { propsData, state: vm.$store.state });
53+
};
54+
},
55+
56+
client() {
57+
const payloads = load(name);
58+
if (payloads) {
59+
payloads.forEach((payload) => {
60+
const { node, data } = payload;
61+
const { propsData, state } = data;
62+
const vm = new Component({
63+
propsData,
64+
});
65+
66+
vm.$store.replaceState(state);
67+
68+
vm.$mount(node.children[0]);
69+
});
70+
}
71+
72+
return Component;
73+
},
74+
});

0 commit comments

Comments
 (0)