每次单击按钮时,我都试图使用AlpineJS更新localStorage
中显示的数据。
我有两个按钮,它们使用setItem
来更新localStorage中的值。
这一切都有效,但我不知道如何在单击按钮时使用AlpineJS更新显示的数据(使用getItem
(。
单击该按钮时,localStorage
中的值确实发生了更改,但我必须重新加载页面以更新FE上的数据。
有人能给我一些关于如何使用AlpineJS解决这个问题的建议吗?
CodePen
CodePen链接
我是AlpineJS的新手,我尝试过文档,但我真的不知道如何掌握它
提前感谢您的任何提示
您的方法不起作用,因为localStorage
不是反应性的,所以您需要重新加载页面以查看变异状态。您在前端所做的一切都应该使用反应式Alpine.js变量,并使用观察程序将这些变量的状态与localStorage
同步。此外,Alpine.js提供了一个localStorage
插件,因此您甚至不必手动同步它们,只需将$persist()
放入相应的变量即可:
<!-- Alpine Plugins -->
<script defer src="https://unpkg.com/@alpinejs/persist@3.x.x/dist/cdn.min.js"></script>
<!-- Alpine Core -->
<script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
<div x-data="{ name: $persist('') }">
<button @click="name = 'Link'">Set name to Link</button>
<button @click="name = 'Zelda'">Set name to Zelda</button>
<div x-text='`Selected name: ${name}`'></div>
</div>