Phoenix LiveView? Elixir? ???? ??? ??? ??????? ???? Javascript ??? ??? ? ?????? ??? ? ?? ???? ?? ??? ?????.
??? ???, ??? ?? ???? ?? ?? ????? ? ?????? ???? ?? ??? ??? ? ????.
? ????? DOM? ?? ????? Javascript ?????? Phoenix LiveView? ???? ??? ???????.
?? ??? ?? ?? ?? ???? Javascript? ??? ? ?? ??? ??? ??? ??? ???? ??? ???? ????? ??? ???????( ??). push_event(LiveView) ? pushEvent(Javascript))? ???? ??? ??? ?? ?????? ?? ?? ??.
??
TLDR: Phoenix LiveView??? ??? push_event? ???? ???? ???? ?????? ??????? ???? ????? ? ? ????.
????? JSON ??? ?? ? ??? ? ?? ??? ???? json-view(??)? ?? ????? ? Javascript ?????? DOM? ?? ??? ? DOM?? ?? ??? ???? ????? ???? ?? ????. .
(LiveView) ???? ???? JSON ???? ?? ???? ??? ??? ?? ???????. ???? ?? ???? ????? ?? ?? ???? ???? ? ???? ?? ???? ?? ? ????.
??? LiveView? ???? mix phx.new? ???? Phoenix ????? ????? ?????.
????? ??
Javascript ???? ??? Javascript? ??? ???? ???? ?? ??? ????.
???? ??? ???? ??? ? ??? ??? ????? ??? ?? ? ?? ?? ??? ????.
- assets/vendor - ???? LiveView ???? ????? ?? ???? ? ????? ???? ??/app/app.js ??? ??? ?????. ?? ????? ? ?? ???? ?????? ????, ?? ?? ?? ??? ?????? ???? ?? ?? ?????.
- NPM/Yarn - esbuild ? webpack? ??? node_modules ??? ?? ?? ??? ??? ? ????. ?? ? ?? ???? ? ?? ??? ?????? ?????.
json-view? ??
? ?????? ????? ?? ???? ?? ? ?? ??? ??? ????.
LiveView? ??? ??? ????. ?, ?? ????? ??? ???? ???? LiveView? ?? ???? ??? ? ???? ?? ??? ???? ??? ?????.
????? ?? ??? ???? ?? ?????.
def render(assigns) do ~H""" <p>Hello <%= @name %></p> """ end
??? json-view? ?? ?????? ??? ???? ?????. DOM ??? ???? ???? Javascript? ???? ???? ? ??? ??? ?????.
import jsonview from '@pgrabovets/json-view'; const data = '{"name": "json-view", "version": "1.0.0"}' const tree = jsonview.create(data); jsonview.render(tree, document.querySelector('.tree'));
? ? ??? ?? ?????. ???? ????? ? ?? ??(??? ? ???)? ???? ??? ?? ???? ??????? ??? ?????? ?????? json-view? ?? ?????? ?????.
????? ???? ??? ?? ?? ???? ??? ? Javascript ??? ???? ???. ? ? ?? ??? ??? ????? ? ??? ?? ??? ???????.
?? ??
LiveView?? ??? (????) ?????? (LiveView) ?? ?? ??? ??? ???? ????, ??? ?? ??? ??????.
??? LiveSocket? ???? phx-hook ??? ???? ??? ?????. ???? ?? ??? ??? ???? ?? ?? ?? ?? ??? ? ???? ??? ??? ??? ? ????. ?? ?? ?? ???? ?? ??? ??? ? ????. ??? ?????.
???? ?? ?? ?? ??? ??? this.pushEvent? ???? ???? ???? ???, this.handleEvent? ???? ?? ??? ??? ?? ???? ???? ???? ???? ?????.
??? ??? ??? ????? ?? ???? ?? ????? ?????? ?? ?? ??? ??? ???? ???? ???.
? ??? ??? ?? ??? ???? ???? JsonView ??? ??? ?????. ? ??? ?? ???? jsonview.render? ???? ??? ??? ??????.
import { Socket } from 'phoenix'; import jsonview from '@pgrabovets/json-view'; const JsonViewHook = { mounted() { this.handleEvent("render_json", ({ data }) => { this.el.innerHTML = ""; const tree = jsonview.create(data); jsonview.render(tree, this.el); }); } } const liveSocket = new LiveSocket( "/live", Socket, {hooks: { JsonView: JsonViewHook }, ...} ); ...
??? ??? ?? ?? ?? ???? ?? ?? ??? ?????.
- ???? ??? ???? JsonViewHook ??? ?????. ? ??? ?? ??? DOM? ????? ? ??? ?????.
- mounted ???? "render_json"??? ??? ?? ???? ?? ??? ???? ?????. ? ???? LiveView?? ?????.
- ???? ???? JSON? ??? data ????? ???? ??? ?????.
- ??? ?? ???? ?????.
- jsonview.create ? jsonview.render? ???? JSON ???? ??? ??????.
? ??? ????? ?? ??("JsonView")? ?? phx-hook ??? ??? ???? ???.
<div> <h2> Sending events to the server </h2> <p>We’ll just need to trigger an event from the backend to provide this data. We’ll leave this outside the scope of this article for now - perhaps a button could trigger an event to the backend? - but you could use this.pushEvent from the mounted hook like so:<br> </p> <pre class="brush:php;toolbar:false">mounted() { this.pushEvent("send_json", {}); }
handle_info? ??? ? ?? ???? LiveView ??? ????. LiveView ??? ?? ????? ?? ????? ?? ???? ?? ??? ??? ??? ? ?? ????? ???? this.pushEvent? ?? ? ?? ???? ??? ????.
???? ??? ???
push_event/3? LiveView?? ????? ???? ???? ?????. ???? ???? ?? ????? ??? ? ??? ??? ???? ???? ?? ???? ?? ??? ??? ???? ???? ?? ????. ??? ??? ??? ?? ?? ???? ???? ?????. ?? ??? ? ?? ??? ?????!
??????? ???? ???? ???????? ??? ? ?? ???? ?? handler_event ?? ??? ?????.
def render(assigns) do ~H""" <p>Hello <%= @name %></p> """ end
?????! ???? ???? ????. ?????? ?? ??? ??? ???? ???? ???? ??? ??? ??? ?? ??? ???? ?????.
?? ??
?????? ?? ?? ??? ?? ??? ?? ???????. ?? ?? ???? ??? ??? ???? ? ?? ??? ???? ?? ????? ??? ?? ??? ???? ????. ?? ???? ???? ??? ??? ?? ??? ? ??? ???.
? ??? ??? ???? ???? ?????? ?????? ?? ???? ??? ?? ????. ?? ?? ????? ??? Javascript ?????? ? ?? ??? ??? ?? ?? ???? ?????. ?? ????? ??? json-view? ?? ???? ???, Chart.js? ?? ?? ?????? ?? ?????.
??? ??? ???? ???? ??? ?? ??? ???? ?? ????? ??? ???. ????? ??? ?? ??? ????? ?????? ??? ??????? ?????.
??? ?? ??? ??? ??? ???? ?? ???? ?? ?????. ???? ????, ?? ? ??? ?????. ???? ??? ???? ???? ?? ? pushEvent? ???? ??? ??? ??? ??? ???? ? ????.
??
DOM? ?? ??? ??? ??? Javascript ?????? ?????? ???? ?? ???? ??? ??? ?????? ???? ?? ?????. ?? ??? ????? ???? ??? ???? LiveView? ???? ?? ??? ??? ?? ??? ? ?? ?????? ??? ??? ?????.
LiveView ?? ? ?? ???? ????? ?? ???? ???? ???? ??? ? ????. ?? ??? ?? ??? ?? ??? ??? ?? ?? ???, ??? Javascript ?????? ???? ???? ?????? ?? ???? ???? ????? ?? ???? ?? ?????.
? ??? Phoenix LiveView, ?? ? push_event: json_view? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

JavaScript? ??? ?? ????? ??? ?? ??? ??? ?? ?? ?? ????? ?? ???? ???? ?????. ??? ?? ???? ?? ??? ?? ??? ???? ???? ?? ?? ???? ???? ?????. ?? ??, ??? ? ?? ???? ??? (? : ??? null? ??) ?? ??? ????? ??????. ??? ??? ???? ??? ??? ????. closure?? ?? ??? ?? ??; ? ??? ??? ?? ?? ???? ?? ???? ????. V8 ??? ?? ???, ?? ??, ??/?? ???? ?? ??? ?? ??? ??? ????? ?? ??? ?? ??? ????. ?? ?? ???? ??? ??? ??? ??? ???? ????? ?? ?? ???? ?? ???????.

Node.js?? HTTP ??? ???? ? ?? ???? ??? ????. 1. ?? ????? ????? ??? ??? ? ?? ????? ?? ?? ? https.get () ??? ?? ??? ??? ? ?? ????? ?? ??? ?????. 2.axios? ??? ???? ? ?? ??????. ??? ??? ??? ??? ??? ??? ???/???, ?? JSON ??, ???? ?? ?????. ??? ?? ??? ????? ?? ????. 3. ?? ??? ??? ??? ??? ???? ???? ??? ??? ???? ?????.

JavaScript ??? ??? ?? ?? ? ?? ???? ????. ?? ???? ???, ??, ??, ?, ???? ?? ? ??? ?????. ?? ????? ?? ?? ? ? ??? ????? ?? ??? ??? ????. ??, ?? ? ??? ?? ?? ??? ??? ??? ???? ??? ??? ???? ??? ?? ??? ????. ?? ? ????? ??? ???? ? ??? ? ??? TypeofNull? ??? ?????? ??? ? ????. ? ? ?? ??? ???? ?????? ????? ???? ??? ???? ? ??? ? ? ????.

?????, JavaScript ???! ?? ? JavaScript ??? ?? ?? ?????! ?? ?? ??? ??? ??? ? ????. Deno?? Oracle? ?? ??, ??? JavaScript ?? ??? ????, Google Chrome ???? ? ??? ??? ???? ?????. ?????! Deno Oracle? "JavaScript"??? ????? Oracle? ?? ??? ??? ??????. Node.js? Deno? ??? ? Ryan Dahl? ??? ?????? ???? ????? JavaScript? ??? ???? Oracle? ????? ???? ?????.

?? JavaScript ??? ??? ??? ?????? ?? ??? ?? ?? ??? ?? ???? ????. 1. ??? ???? ???? ?? ??? ?? ? ? ???? ??? ??? ?? ? ?? ????? ?????. 2. Angular? ?????? ??? ?? ???? ? ?? ?? ??? ??? ??? ???? ?????. 3. VUE? ???? ?? ??? ???? ?? ?? ??? ?????. ?? ?? ?? ??, ? ??, ???? ???? ? SSR? ???? ??? ??? ??? ???? ? ??? ?????. ???, ??? ??? ??? ????? ????. ??? ??? ??? ??? ?? ????.

iife (?? invokedfunctionexpression)? ?? ??? ???? ?? ????? ??? ???? ?? ??? ????? ?? ??? ? ?????. ??? ?? ?? ??? ???? ? ?? ??? ??? ?? (function () {/code/}) ();. ?? ???? ??? ?????. 1. ?? ??? ??? ?? ???? ?? ??? ??? ?????. 2. ?? ??? ??? ???? ?? ?? ??? ????. 3. ?? ?? ??? ????? ?? ???? ???????? ?? ? ??. ???? ?? ???? ?? ??? ES6 ??? ??? ??? ?? ? ??? ????? ??? ? ???? ???????.

??? JavaScript?? ??? ??? ?????? ?? ???????. ?? ??, ?? ?? ? ??? ??? ?? ????? ????? ?????. 1. ?? ??? ??? ????? ???? ??. ()? ?? ??? ??? ?????. ?. ()? ?? ??? ?? ??? ??? ?? ? ? ????. 2. ?? ??? .catch ()? ???? ?? ??? ??? ?? ??? ??????, ??? ???? ???? ????? ??? ? ????. 3. Promise.all ()? ?? ????? (?? ?? ?? ? ??????? ??), Promise.Race () (? ?? ??? ?? ?) ? Promise.AllSettled () (?? ??? ???? ??)

Cacheapi? ?????? ?? ???? ??? ???? ???, ?? ??? ??? ?? ???? ? ??? ?? ? ???? ??? ??????. 1. ???? ????, ??? ??, ?? ?? ?? ???? ???? ??? ? ????. 2. ??? ?? ?? ??? ?? ? ? ????. 3. ?? ?? ?? ?? ?? ??? ??? ?? ?????. 4. ??? ???? ?? ?? ???? ?? ?? ?? ?? ?? ???? ?? ?? ??? ??? ? ????. 5. ?? ???? ??, ??? ??? ? ??? ??, ?? ??? ? ?? ???? ???? ???? ? ?? ?????. 6.?? ??? ?? ?? ?? ??, ???? ?? ? HTTP ?? ????? ?????? ???????.
