layui tree 加载慢_layui tree组件如何异步加载数据,动态添加树节点

本文介绍如何解决layui tree组件加载慢的问题,通过异步加载数据和动态添加树节点的方法来优化性能。示例代码展示了如何整理数据结构,构建树形结构,并在layui中使用该结构进行展示,支持拖拽和点击节点回调。
摘要由CSDN通过智能技术生成

$data = [

[ 'id' => 1, 'name' => '江苏省', 'pid' => 0],

[ 'id' => 2, 'name' => '徐州市', 'pid' => 1],

[ 'id' => 3, 'name' => '睢宁县', 'pid' => 2],

[ 'id' => 4, 'name' => '双沟镇', 'pid' => 3],

[ 'id' => 5, 'name' => '王集镇', 'pid' => 3],

[ 'id' => 6, 'name' => '铜山区', 'pid' => 2],

[ 'id' => 7, 'name' => '张集镇', 'pid' => 6],

[ 'id' => 8, 'name' => '大黄山镇', 'pid' => 6],

[ 'id' => 9, 'name' => '南京市', 'pid' => 1],

[ 'id' => 10, 'name' => '江宁区', 'pid' => 9],

[ 'id' => 11, 'name' => '鼓楼区', 'pid' => 9],

[ 'id' => 12, 'name' => '浙江省', 'pid' => 0],

[ 'id' => 13, 'name' => '杭州市', 'pid' => 12],

[ 'id' => 14, 'name' => '西湖区', 'pid' => 13]

];

$res = [];

$tree = [];

//整理数组

foreach ($data as $key => $value) {

$res[$value['id']] = $value;

$res[$value['id']]['children'] = [];

}

unset ($data);

//查询子孙

foreach ($res as $key => $value) {

if($value['pid'] != 0){

$res[$value['pid']]['children'][] = &$res[$key];

}

}

//去除杂质

foreach ($res as $key => $value) {

if ($value['pid'] == 0){

$tree[] = $value;

}

}

unset($res);

$tree = json_encode($tree);?>

树模块 - layui

body{padding: 50px 100px;}

layui.use('tree', function(){

var tree = layui.tree({

elem: '#demo' //指定元素

//,check: 'checkbox' //勾选风格

,skin: 'as' //设定皮肤

,target: '_blank' //是否新选项卡打开(比如节点返回href才有效)

,drag: true

,click: function(item){ //点击节点回调

console.log(item)

}

,nodes: <?php echo $tree; ?>

});

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值