template.content.clonenode(true)是唯一安全克隆方式,因template.content为只读documentfragment,只能移动一次,深克隆才能保留事件绑定、文本节点及子节点结构,且须在connectedcallback中执行以确保dom就绪。

template.content.cloneNode(true) 是唯一安全克隆方式
直接 appendChild(template.content) 看似省事,但会导致第二次实例化时内容为空——template.content 是一个 DocumentFragment,只能被移动一次。一旦移出,再取就是空的。
必须用 cloneNode(true)(true 表示深克隆),否则事件监听器、表单状态、文本节点都会丢失;false 只克隆子元素,不包含文本和绑定上下文。
- 别在
constructor里操作template——此时 DOM 还没解析完,document.getElementById拿不到它 - 模板必须放在 light DOM 中,且用
id定位,不能靠 class 或 data-*,避免多实例冲突 - 推荐把
<template id="xxx"></template>放在
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











