我习惯了像 React 或 Angular 这样的库/框架,它们都有方便的方法来访问属于逻辑组件的实际 DOM 元素。React 具有createRef实用程序,而 Angular 具有与例如结合的模板变量。@ViewChild.这些引用不仅使访问 DOM 变得容易,而无需每次都明确查询元素,而且它们还与 DOM 保持同步,以便它们始终保持对当前元素的引用。我刚开始在我的宠物项目中使用 Svelte,但尽管我浏览了 Svelte 的文档和谷歌很多,但我没有找到任何类似的概念和用法。我想这可能与 Svelte 的无运行时概念有关,但仍然不知道为什么没有这样的实用程序。那么问题来了,Svelte 中是否有类似的实用程序?
1 回答
温温酱
TA贡献1752条经验 获得超4个赞
根据https://svelte.dev/tutorial/bind-this上的示例(感谢@skyboyer),您可以使用bind:this(在 REPL 中尝试):
<script>
import { onMount } from 'svelte';
let myInput;
onMount(() => {
myInput.value = 'Hello world!';
});
</script>
<input type="text" bind:this={myInput}/>
您也可以使用use:action,如https://svelte.dev/docs#use_action和@collardeau 所建议的(在 REPL 中尝试):
<script>
import { onMount } from 'svelte';
let myInput;
function MyInput (node) {
myInput = node;
myInput.value = 'Hello world!';
}
</script>
<input type="text" use:MyInput/>
添加回答
举报
0/150
提交
取消