CustomViewModules: 自定义一个Tap窗口

用户可以自己定一个工具tap窗口和”项目管理器“是一样的展现形式。

因为工具前端开发使用了Vue2.0,所以插件也需要用Vue开发。 Tap窗口这里我们使用的是Vue/Vuex的框架。

用户需要定义vuex的module,与Vue Compnent

UI交互使用vue组件 内部数据管理使用module.state(可以参考vuex的module) 调用外部tap,或是全局的接口,使用store的dispatch/commit 获取外部的数据,使用的是action传入的rootState, 或是vue组件中的this.$store.state 外部调用内部的函数也是dispatch/commit内部注册的actions/mutations。

比如 assets/idePlugins/index.ts :

// module
const tapModule = {
  state: {},
  mutations: {},
  actions: {}
}

const tapVue = {
  name: 'editorTap',
  // 在 JavaScript 中是 camelCase 的
  template: `<h3>{{ 'janzenzhang' }}</h3>`,
  // 默认会有这些入参
  props: {},
}

// idePlugins/index.js
export default {
  CustomViewModules: {
    'editorCustomTap': { // tap的名字
      vue: tapVue,
      module: tapModule
    }
  },
  ...
}