溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vue.js中element-ui tree樹形控件改iview的示例分析

發(fā)布時(shí)間:2021-07-20 11:13:05 來源:億速云 閱讀:239 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了vue.js中element-ui tree樹形控件改iview的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

element-ui組件的tree樹形控件修改源碼改為iview組件

實(shí)現(xiàn)原理

修改了element-ui源碼,把源碼里面的tree模塊提取出來

然后修改element自帶checkbox等組件為iview的checkbox,并且兼容方法

最后修改element樣式,改為iview風(fēng)格,自己也添加了一些樣式

新的tree組件可以說是element的邏輯,iview的風(fēng)格

<template>
 <div
  @click.stop="handleClick"
  v-show="node.visible">
  <div class="chu-tree-node__content"
   :>
   <span :class="arrowClasses" @click.stop="handleExpandIconClick">
     <Icon v-if="!node.isLeaf" type="arrow-right-b"></Icon>
   </span>
   <Checkbox
    v-if="showCheckbox"
    :value="node.checked"
    :indeterminate="node.indeterminate"
    :disabled="!!node.disabled"
    @click.native.stop
    @on-change="handleCheckChange"></Checkbox>
   <span
    v-if="node.loading"
    class="ivu-load-loop">
   </span>
   <node-content :node="node"></node-content>
  </div>
  <collapse-transition>
   <div
    v-show="expanded">
    <el-tree-node
     :render-content="renderContent"
     v-for="child in node.childNodes"
     :key="getNodeKey(child)"
     :node="child"
     @node-expand="handleChildNodeExpand">
    </el-tree-node>
   </div>
  </collapse-transition>
 </div>
</template>

修改handleCheckChange,因?yàn)閕view的checkbox組件邏輯不同,函數(shù)的返回不一樣,需要兼容

handleCheckChange(ev) {
    this.node.setChecked(ev, !this.tree.checkStrictly);
   },

提取完成后的項(xiàng)目結(jié)構(gòu),以及封裝成npm插件

vue.js中element-ui tree樹形控件改iview的示例分析

使用方法

必須安裝iview

樣式風(fēng)格全部替換成了ivew

功能全部按照element-ui原先一樣

npm i chu-tree-iview
import chuView from 'chu-tree-iview'

Vue.use(chuView)

<chu-tree></chu-tree>

使用文檔跟element-ui一模一樣

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“vue.js中element-ui tree樹形控件改iview的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI