问题描述
请您解释一下如何在svelte应用程序中查看反应性。因此,如果在浏览器的控制台中更改变量值,则会看到更新的DOM。 如果我下面有App.svelte文件,是否可以在浏览器控制台中将新值分配给“ name”变量,并立即查看更新“ h1”元素?
<script>
let name = 'world';
</script>
<h1>Hello World!</h1>
<h1>Hello {name}!</h1>
解决方法
使用Svelte无法直接实现。这样做的原因是因为这些变量在文档的全局范围内不存在,它们被浏览器封装到应用程序中,并且不受外界干扰。
解决此问题的一种方法是显式定义执行此操作的方法
<script>
let name = 'world';
window.setName = (val) => name = val;
</script>
<h1>Hello {name}!</h1>
现在您可以在控制台中执行window.setName('test')
,它将更改name
的值
Svelte编译您的代码,因此无法从浏览器控制台获取变量。这也意味着您不能使用CDN中的Svelte,即<script src="//cdn/svelte.min.js">
无效。
但是,如果您需要检查反应性,则可以通过单击按钮(例如)来更新变量值。
<script>
let message = 'Hello';
</script>
<button on:click={() => { message = 'Bye bye' }}>
Change content
</button>
<h1>
>>> {message}
</h1>
或者按照文档中的以下代码片段-https://svelte.dev/tutorial/text-inputs