
node-drag-start:开始拖拽节点时触发(按下鼠标按钮),无论是否允许放置,此事件都会触发。
allow-drop 返回 true 才能触发@node-drag-end="handleDragend"、@node-drop="handleDrop";
(1)allow-drop:动态控制是否允许放置;
(2)node-drag-end:拖拽结束时(可能未成功)触发的事件;
(3)node-drop:拖拽成功完成时触发的事件,触发处理数据更新;
node-drag-end与node-drop无法通过返回值阻止拖拽操作
// ❌ 错误:此时数据尚未更新!
handleDragEnd() {
this.treeData = newData; // ❌ 不会生效
}
// ✅ 正确:在 @node-drop 中更新数据
handleDrop() {
this.treeData = newData; // ✅ 触发响应式更新
}

<template>
<!-- 两棵el-tree的节点跨树拖拽实现 -->
<div class="tree-drag">
<!-- 左侧树(可拖出) -->
<el-tree
:data="treeData1"
ref="tree1"
class="tree"
node-key="id"
draggable
default-expand-all
:props="defaultProps"
@node-drop="handleDrop"
:allow-drop="returnTrue"
>
</el-tree>
<!-- 右侧树(可拖入) -->
<el-tree
:data="treeData2"
ref="tree2"
class="tree"
node-key="id"
draggable
default-expand-all
:allow-drop



![[CSS3]vw/vh移动适配](https://i-blog.csdnimg.cn/img_convert/87f142fa3e13d6ef00e2e6514dacaf3b.png)













![reverse_ssh 建立反向 SSH 连接指南 混淆AV [好东西哟]](https://i-blog.csdnimg.cn/direct/84f6ca44553f4eec8eedab4ae22d9a35.png)

