Joh*_*Tux 8 php laravel laravel-livewire
有人能给我指出适用于 Livewire 组件的“水合”和“脱水”的定义吗?文档搜索中唯一的命中指的是
Livewire 将负责在请求之间使用当前的非持久数据对模型进行水合和脱水。
在生命周期钩子部分,水合物和脱水类钩子是自引用的。
水合物:在组件水合后根据每个请求运行...
对类似问题的回答表明,水化是在实例化对象后用数据填充对象——这有点道理,但是“脱水”对象会是什么?
小智 8
我不知道除了钩子之外,文档中是否对生命周期有很好的定义。
我来解释一下我的理解。
因此,Livewire 中的水合本质上有两个级别,一个是对组件进行水合,另一个是对组件的属性进行水合。
Livewire 需要在 php 和 javascript 之间来回发送数据才能正常工作。作为发送的消息的一部分,包含有关组件的信息和有关属性的信息。但为了让 JavaScript 能够访问和使用信息,它需要采用正确的格式。
水合过程是获取消息并将其值转换回 php,创建 Livewire 组件并创建该组件具有的任何属性。
脱水则相反,它会遍历所有属性并序列化它们,然后序列化组件并将其全部捆绑到发送到前端的消息中。
Caleb 在博客文章中解决了这个问题。下面链接的帖子也链接到 Livewire 文档,尽管我承认它仅链接到文档的一个低级子部分。
我确实认为这样的信息应该放在首要位置,为其他人理解该框架奠定基础。 根据定义,需要额外脚注才能充分理解的文档,而不是文档,对吧!?! 无论如何,重点是,我不会责怪任何人错过它!
官方的解释实际上与已经接受的答案(@JoshHanley)没有太大不同。尽管如此,我确实发现该博客更清晰、解释更好,并且可能会在将来对其他人有所帮助。
我知道(根据 SO 指南)我应该重新措辞答案并链接到资源,但老实说,没有简单的方法来解释这样的框架。恐怕你只能跳进深渊了。