>웹 프론트엔드 >JS 튜토리얼 >트리 구성요소 요소 UI에 대해 이야기해 보겠습니다.

트리 구성요소 요소 UI에 대해 이야기해 보겠습니다.

一个新手
一个新手원래의
2017-09-11 09:07:263852검색

여기에서는 요소 UI에 대해 너무 많이 소개하지 않겠습니다. 동적으로 로드되는 트리 구성 요소의 가장 일반적인 사용법을 직접 소개하겠습니다.
트리 구성 요소를 소개하는 코드는 다음과 같습니다.

<el-tree :data="data" :props="props" lazy @node-click="handleNodeClick" :load="loadNode"></el-tree>/* 
    动态加载lazy参数和load方法是必选的,
    lazy:为节点store(TreeStore)中的属性,可输出当前节点进行查看
    load:加载子数据的方法,用法为function(node,reslove){}
    */<script>
  export default {
    data() {      return {
        props:{        //配置父子树的属性名
          label:&#39;parent&#39;,
          children:&#39;sub&#39;
        }
      };
    },
    methods: {    //点击节点的处理事件,可以更改显示节点的内容
      handleNodeClick(data){      //在这里改变加载的数据无法刷新树数据
        //to do something ,load data from server and show the data to the view
        if(data.label == 1){//判断点击节点,choose the node you clicked
        /*to do something*/
        }
        console.log(data.label)
        console.log(data)
      },
      loadNode(node, resolve){
        console.log(node);        if (node.level === 0) {          //初始第一层节点,初始化数据,根节点配置
          return resolve([{ label: &#39;1&#39; }, { label: &#39;2&#39; }, { label: &#39;3&#39; },]);
        }        var data = [];        if(node.data.label == 1){//点击树节点1的处理
          data = [{label:&#39;1-1&#39;},{label:&#39;1-2&#39;},{label:&#39;1-3&#39;}];
        }        if(node.data.label == 2){//点击树节点2的处理
          data = [{label:&#39;2-1&#39;},{label:&#39;2-2&#39;},{label:&#39;2-3&#39;}];
        }
        resolve(data)//加载下级数据!
      }
    }
  };</script>

이제 우리는 두 가지 일반적인 방법을 분석합니다. tree
1. node- click: 노드를 클릭할 때의 콜백으로, 총 3개의 매개변수가 순서대로 있습니다: 데이터 속성에 전달된 배열의 노드에 해당하는 객체, 해당 노드에 해당하는 Node, 노드 구성 요소 자체. 즉, function (data, node, vuecomComponent) {}

node-clikc方法:function(data,node,vueComponent){        //可以进行常用的点击view层展示切换}
data:参数为我们点击的节点的数据对象
node:(node对象)    checked:false//是否选中
    childNodes:Array(3)//子节点
    data:Object//data数据对象
    expanded:true//是否可以展开
    id:1//node的id
    indeterminate:false//和checkbox结合的属性,选框的样式
    isLeaf:false
    level:1//点击的node层级
    loaded:true//加载完
    loading:false//加载中
    parent:Node//父级node
    store:TreeStore//树形数据的store
    text:null
    visible:(...)
    disabled:(...)
    icon:(...)
    key:(...)
    label:"1"
    __ob__:Observer {value: Node, dep: Dep, vmCount: 0}    get checked:ƒ reactiveGetter()    set checked:ƒ reactiveSetter(newVal)    get childNodes:ƒ reactiveGetter()    set childNodes:ƒ reactiveSetter(newVal)    get data:ƒ reactiveGetter()    set data:ƒ reactiveSetter(newVal)    get expanded:ƒ reactiveGetter()    set expanded:ƒ reactiveSetter(newVal)    get id:ƒ reactiveGetter()    set id:ƒ reactiveSetter(newVal)    get indeterminate:ƒ reactiveGetter()    set indeterminate:ƒ reactiveSetter(newVal)    get isLeaf:ƒ reactiveGetter()    set isLeaf:ƒ reactiveSetter(newVal)    get level:ƒ reactiveGetter()    set level:ƒ reactiveSetter(newVal)    get loaded:ƒ reactiveGetter()    set loaded:ƒ reactiveSetter(newVal)    get loading:ƒ reactiveGetter()    set loading:ƒ reactiveSetter(newVal)    get parent:ƒ reactiveGetter()    set parent:ƒ reactiveSetter(newVal)    get store:ƒ reactiveGetter()    set store:ƒ reactiveSetter(newVal)    get text:ƒ reactiveGetter()    set text:ƒ reactiveSetter(newVal)    get visible:ƒ reactiveGetter()    set visible:ƒ reactiveSetter(newVal)
    __proto__:Object
具体用法//node-click函数handleNodeClick(data,parent,child){    //to do something ,load data from server and show the data to the view
     if(data.label == 1){//判断点击节点,进行view层试图切换,choose the node you clicked
     /*to do something*/
     }
}

2. 로드 방법
load: 하위 데이터를 로드하는 방법, 일반적인 형식은 function (node, reslove) {}입니다. 사용 시 Promise를 호환 가능하게 만드는 것을 기억하세요. 약속

loadNode(node, resolve){
        console.log(node);        if (node.level === 0) {          //初始第一层节点,根节点
          return resolve([{ &#39;parent&#39;: &#39;1&#39; }, { &#39;parent&#39;: &#39;2&#39; }, {&#39;parent&#39;: &#39;3&#39; },]);
        }        var data = [];        if(node.data.parent == 1){        //对点击节点加载内容处理
        //一次只能处理一层,sub属性数据被忽略
          data = [{&#39;parent&#39;:&#39;1-1&#39;,&#39;sub&#39;:[{            &#39;parent&#39;:&#39;1-1-1&#39;,
          }]},{&#39;parent&#39;:&#39;1-2&#39;},{&#39;parent&#39;:&#39;1-3&#39;}];
        }        if(node.data.parent == 2){
          data = [{&#39;parent&#39;:&#39;2-1&#39;},{&#39;parent&#39;:&#39;2-2&#39;},{&#39;parent&#39;:&#39;2-3&#39;}];
        }        //内容更新
        resolve(data)
      }

위 내용은 트리 구성요소 요소 UI에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.