Skip to content

服务端渲染不用vuex可以吗? #91

Closed
@freemember007

Description

@freemember007

vuex写得太麻烦,store可以用一个全局变量替吗?也就是说不用vuex实现服务端渲染。

Activity

yyx990803

yyx990803 commented on Nov 30, 2016

@yyx990803
Member

可以,但你需要自己实现类似的 prefetch 逻辑

youngwind

youngwind commented on Jan 5, 2018

@youngwind

@freemember007 我也在探索不用 vuex 实现的方案,请问你找到解决方案了吗?

linweiwei123

linweiwei123 commented on Mar 24, 2019

@linweiwei123

@youngwind @freemember007
store可以用全局对象:

// store.js
import * as service from './service'

var store =  {
    state: {
        message: 'hello',
        heros: [],
    },
    setHerosAction() {
        return service.getHeros()
            .then( resp => {
                // resp需要对上data
                console.log('=====返回的heros', resp.data.data);
                this.state.heros = resp.data.data;
            })
    },
    clearHerosAction(){
        this.state.heros = [];
    }
}


export function createStore() {
    return store;
}

// entry-client.js 把数据(window中)赋值给store.state

let store = createStore();
store.state = merge(store.state, window.__INITIAL_STATE__);

let { app } = createApp(store);
app.$mount('#app', true);

// app.js ,store就是全局对象,赋给data

export function createApp(store) {
    let app = new Vue({
        data: store,
        render: h => h(App)
    });
    return { store, app, App}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @freemember007@yyx990803@youngwind@linweiwei123

        Issue actions

          服务端渲染不用vuex可以吗? · Issue #91 · vuejs/vue-hackernews-2.0