SuperAPI AI 工具集

liveview-patterns

数据与分析

查看项目

更新于 10-16 07:25

技能介绍

用途:为使用 Phoenix LiveView 1.0/1.1 构建界面提供模式参考,覆盖异步数据、PubSub、表单与上传、列表渲染和导航等常见场景。

主要能力与规则:mount 中不做无条件数据库查询,默认用 assign_async;SEO 路由用 connected? 守卫加缓存支撑的断连分支。列表一律用 streams 而非普通 assigns,以保持 O(1) 内存。订阅前检查 connected?/1,避免重复订阅。在 assign_async 闭包前提取变量,避免闭包复制整个变量。主数据在 mount/3 加载,分页在 handle_params/3 处理。不要把 socket 传入业务逻辑,先提取数据。表单保存异常时先检查 changeset 错误。嵌入式 schema 的必填字段需提供 hidden_input。生命周期值不要用 assign_new,改用 assign/3。显式匹配 {:error, %Ecto.Changeset{}}。

用法示例:mount 中用 assign_async(:org, fn -> {:ok, %{org: fetch_org(scope, slug)}} end);列表用 stream(socket, :items, Items.list_items()),配合 stream_insert/stream_delete;导航按同 LiveView 不同参数用 patch、同 live_session 不同 LiveView 用 navigate、其余用 href/redirect。

适用场景:Phoenix LiveView 应用的异步加载、实时订阅、表单校验、文件上传、长列表与页面导航。

限制:Ash 项目应改用 ash-framework 技能处理 AshPhoenix.Form,不要用 Ecto.Changeset.cast/3。资料未提供安装命令、收费与平台信息。