Vue.js中的多分割视图组件 - vue-multi-split-pane

Vue.js中的多分割视图组件 - vue-multi-split-pane
插件名称 vue-multi-split-pane
发布时间 2020年10月16日
插件作者 dgknca

一个多分割视图组件,用于在您的应用中生成可调整大小的垂直和/或水平分割布局。

安装和下载:

# NPM
$ npm i vue-multi-split-pane --save

变更日志:

v1.2.0(01/01/2021)

  • initWidth和initHeiht道具

v1.1.2(2020年11月28日)

  • 添加了浏览器支持

2020年11月17日

  • 添加了浏览器版本

基本用法:

1.导入寄存器组件。

import { MultiSplitPane, Pane } from 'vue-multi-split-pane';
export default {
  components: {
    MultiSplitPane,
    Pane
    // ...
  }
}

2.创建一个基本的水平拆分布局。

<MultiSplitPane
  split="horizontal"
  height="400px"
  width="1000px"
  resizerWidth="30px"
  classes="v-pane-custom"
  @onPaneCollapsed="onPaneCollapsed"
  @onPaneExpanded="onPaneExpanded"
>
  <Pane>
    <template v-slot:resizer>
      Resizer 1
    </template>
    <template v-slot:content>
      Content 1
    </template>
  </Pane>
  <Pane>
    <template v-slot:content>
      Content 2
    </template>
  </Pane>
  <Pane>
    <template v-slot:content>
      Content 3
    </template>
  </Pane>
</MultiSplitPane>
export default {
  components: {
    MultiSplitPane,
    Pane
    // ...
  },
  methods: {
    onPaneCollapsed(paneIndex, paneClass, containerClass) {
      console.log(
        `${paneIndex}. pane collapsed. Pane class: '${paneClass}' MultiSplitPane class: '${containerClass}'`
      )
    },
    onPaneExpanded(paneIndex, paneClass, containerClass) {
      console.log(
        `${paneIndex}. pane expanded. Pane class: '${paneClass}' MultiSplitPane class: '${containerClass}'`
      )
    }
  }
}

3.拆分布局还支持嵌套窗格。

<MultiSplitPane
  split="horizontal"
  height="400px"
  width="1000px"
  resizerWidth="30px"
  classes="v-pane-custom"
  :nested="true"
  @onPaneCollapsed="onPaneCollapsed"
  @onPaneExpanded="onPaneExpanded"
>
  <Pane>
    <template v-slot:content>
      Content 1
    </template>
  </Pane>
  <Pane classes="paneNested">
    <template v-slot:content>
      <MultiSplitPane
        height="400px"
        resizerWidth="30px"
        classes="v-pane-custom"
      >
        <Pane>
          <template v-slot:content>
            Content 2.1
          </template>
        </Pane>
        <Pane>
          <template v-slot:content>
            Content 2.2
          </template>
        </Pane>
      </MultiSplitPane>
    </template>
  </Pane>
</MultiSplitPane>

4.所有默认组件:

height: { type: String, required: true },
width: { type: String, default: '100%' },
classes: { type: String },
split: { type: String, default: 'vertical' },
resizerWidth: { type: String, default: '30px' },
nested: { type: Boolean, default: false }