Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

通过 Hooks 将事件推送回实时视图或实时组件

Posted on 2025-11-05

在 Phoenix LiveView 中编写钩子时,从 JavaScript 钩子将事件推送回 Live View 或 Live Component 的模式略有不同。

  1. 当向实时视图组件推送事件时,必须使用pushEventTo ,并指定实时组件模板中元素的 DOM id 。
  2. 当向实时组件推送内容时,必须使用pushEvent ,它会在实时视图中调用handle_event 。

我用钩针钩的图案和这个类似:

如果 ( this.el.dataset.from_live_component )​​​​​​ {  
	this.pushEventTo ( ` # $ { ctx.el.id } ` ,​​​​ 'file_removed' , {  
		ID : ctx.el.id​​​​  
	});  
} 别的 {  
	this.pushEvent ( ' file_removed ' , {  
		ID : ctx.el.id​​​​  
	});  
}  

使用 Live 组件中的 hook 时,唯一的区别在于需要指定一个额外的data-from_live_component属性,以告诉 hook 如何将事件推送回去:

 < div id = "my-unique-dom-id" phx - hook = "MyHook" data - from - live_component = “任何内容” >< /div>  

需要注意一点: id很重要,因为事件会被推送至所有可能渲染的 Live 组件,所以如果您只想处理特定 Live 组件的此事件,则需要类似这样的代码:

定义 处理事件( "file_removed" , %{ ID : ID }, 插座) 做   
	如果 ID == “my-components-unique-id” 做   
		# 处理事件  
	别的  
		# 请勿处理此事件,因为此事件的预期用途就是如此  
                # 用于另一个实时组件  
	结尾  
        { :无回复, 插座}  
结尾  

就是这样!

原文: https://zarar.dev/pushing-events-back-to-live-view-or-live-component-from-hooks/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Anil Dash
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Big Technology
  • Bits about Money
  • Brandon Skerritt
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • HeardThat Blog
  • Henrique Dias
  • Herman Martinus
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Li Haoyi
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Maggie Appleton
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mind Matters
  • Mostly metrics
  • Naval Ravikant
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steph Ango
  • Stephen Wolfram
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme