1. 程式人生 > 其它 >vue中align_Vue的簡單Treeview元件,沒有額外的依賴——VueTeatree

vue中align_Vue的簡單Treeview元件,沒有額外的依賴——VueTeatree

技術標籤:vue中align

介紹

Vue Teatree是一個不依賴第三方庫的Vue樹元件,簡單易用!


1b1b68037439cfab765a401737876fed.gif

Github

https://github.com/sarimabbas/vue-teatree

安裝

yarn add vue-teatree # (or use npm)

範例

  • 匯入元件
import { Teatree, NodeType, NodeName, NodeToggle } from "vue-teatree";
Teatree 是將資料傳遞到的主要元件(如下)。NodeType 包含定義每個節點型別的Typescript介面。NodeName 是將傳遞到插槽中(slot)的預製元件。NodeToggle 是將傳遞到插槽中(slot)的預製元件。

準備資料

const data: NodeType[] = [  {    name: "parent",    show: true,    showChildren: true,    selected: false,    children: [      {        name: "child",        show: true,        showChildren: true,        selected: false,        children: [          {            name: "grandchild",            show: true,            showChildren: true,            selected: false,            children: [],          },        ],      },    ],  },];

Teatree樹檢視純粹是資料的功能。如果要更改樹檢視(例如,切換子代,隱藏節點等),則應修改資料物件。NodeToggle和NodeName可以用自己的元件替換,並分別傳遞到node-toggle和node-name插槽中。

NodeType

Teatree接受NodeType陣列作為其根屬性。這意味著可以在樹檢視中渲染多個根。

interface NodeType {  // show: 切換此選項將顯示/隱藏節點及其子節點  show: boolean;  // showChildren: 切換此操作將切換其子級  showChildren: boolean;  // selected: 切換此選項將應用“選中的” CSS樣式  selected: boolean;  // children: 子代還必須符合節點規範  children: Array;  // name: 節點名稱  name: string;  // icon: base64編碼的圖示(可選)  icon?: string;  data?: object;}

NodeToggle

它是用於渲染節點切換的預構建元件。如果想實現自己的程式碼,可以看一下原始碼!

  • 屬性
84fe35957ccbe4d9f1472c499c8042b7.png

NodeName

cd674801dfcb459fe692f6fcf4df532c.png

樣式

預設匯入

@import "~vue-teatree/build/Teatree.css"

Teatree

.teatree {  cursor: pointer;  height: 100%;  overflow: hidden;}.teatree-node {  padding-right: 0.25rem;}.teatree-node-item {  display: flex;  align-items: center;  height: 1.5rem;  background: transparent;  /* hack to make hover the full width of parent */  padding-left: 100%;  margin-left: -100%;  padding-right: 100%;  margin-right: -100%;}.teatree-node-item:hover {  background-color: #718096;}.teatree-node-item-selected {  background-color: #718096;}.teatree-node-item-name-padded-leaf {  padding-left: 1.25rem;}

NodeToggle

.teatree-node-item-icon {  display: flex;  align-items: center;  margin-left: 0.5rem;  color: #cbd5e0;}

NodeName

.teatree-node-item-name {  display: inline-block;  font-size: 0.875rem;  color: #a0aec0;  margin-left: 0.5rem;  user-select: none;  /* truncate */  overflow: hidden;  text-overflow: ellipsis;  white-space: nowrap;}.teatree-node-item-name-padded {  padding-left: 1.5rem;}

顯示右鍵選單

可以參考:https://github.com/rawilk/vue-context
export default class MyComponent extends Vue {  handleNodeRightClick(node: NodeType, event: any) {    this.$refs.menu.open(event, node);  }}

使用handleNodeRightClick元件prop呼叫上下文選單