Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

niuzz/vue-vuex-typesctipt-example

Repository files navigation

ts

typescript-vuex-example

使用vue + typescript + vuex 使用例子 vue-cli 3.0构建的项目,选择使用typescript 目前vuex使用typescript支持并不完善,需要引入vuex-class做相关装饰器映射 使用例子主要解决了vuex + typescript相关代码组织,并模块化,以及三方库引入(element-ui) vue 页面引入 vuex:

import {
  State,
  Getter,
  Action,
} from 'vuex-class';
@Component({
  components: {
    HelloWorld,
  },
})
export default class Home extends Vue {
  @Action('user/foo') private actionFoo!: () => void;
  @State((state) => state.user) private user!: User;
  @Getter('user/uidname') private uidname!: string;

  public created() {
    console.log(this.uidname);
  }
  public onClick() {
    this.actionFoo();
  }
}

store 中 modules写法

export default {
  namespaced: true,
  state,
  mutations: {
    SET_USER_NAME: () => {
      state.username = 'hello';
    },
  },
  actions: {
    foo: (context: { commit: Commit }) => {
      context.commit('SET_USER_NAME');
    },
  },
  getters: {
    uidname(state: State): string {
      return state.username;
    },
  } as GetterTree<State, any>,
};

About

vuex使用typescript例子,vuex-class装饰器

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.