Hyperstack vs Hotwire (traducción)

Intentaré adaptarme al habr y completar aquí la traducción del artículo de mi otro recurso .






Esta es una comparación muy obstinada pero con suerte honesta y precisa entre Hyperstack y Hotwire.





En primer lugar, ¿qué son estas cosas?





Ambas soluciones ayudan a llevar la interfaz de usuario moderna a Rails.





Ambos dependen de Websockets para recibir notificaciones de cambio de estado.





Hyperstack

  • Todo está escrito en Ruby (incluido el código del cliente)





  • Debajo del capó, React se usa para construir una interfaz de usuario con la capacidad de acceder a las bibliotecas de React





  • Mantiene fácilmente los modelos de Rails sincronizados entre la interfaz de usuario y el servidor. A menudo sin código adicional





  • Elimina la necesidad de escribir controladores (pero puede continuar usándolos si lo desea)





  • Da la máxima cantidad de trabajo posible al lado del cliente





  • Proporciona un poderoso mecanismo de control de acceso a datos basado en las políticas de Pundit.





  • Se puede utilizar en aplicaciones Rails existentes





Alambre caliente

  • Esta es la próxima evolución de Rails Turbolinks





  • Extiende el sistema estándar Rails MVC al enviar actualizaciones incrementales a la capa de presentación





  • Utiliza enfoques tradicionales de Rails





  • Deja la mayor parte del trabajo en el lado del servidor, lo que hace que el lado del cliente sea muy ligero





  • Elimina la mayoría (pero no todo) del código JS que podría necesitar escribir





  • Mantenido por DHH y presumiblemente por la comunidad de Rails





, “Tweet” (https://gorails.com/episodes/hotwire-rails) Hyperstack. : UI , .





Hyperstack , . , layout , .





Hyperstack - 78 lines vs — Hotwire — 156

- , ?





, “Tweet Card”, "" "".





Hyperstack:





Hotwire:





.





Hyperstack React-, , DSL. DSL HTML- . EditTweet , 11 .





Hotwire ERB HTML, , turbo_frame_tag



. .





React, Hyperstack “state-driven” . “”, “editing”, EditTweet ( 14). EditTweet save cancel, “editing state” false. .





Hotwire , “Edit” , .





“Like” “Retweet”, Hyperstack .on(:click)



, ActiveRecord increment!



. Hyperstack ()





Hotwire , edit : , . , , :





, , Hyperstack , — . html.erb , 70+ UI- .





. .erb json



, API. , Hotwire jbuilder, 2 , .





, . Hotwire , , (after_...



) twitter.rb







? . . ? , 3 . , Hyperstack ( ) routes.rb



, .





, . , “Like”





?





- , . (!)





Hotwire :









  • ( 14 )





  • json



    ,





  • button_to



    _tweet.html.erb







16 , Rails - action controller, view helpers, jbuilder, active record router - Ruby, HTML ERB.





Hyperstack?





:





BUTTON { "Likes (#{tweet.likes_count})" }
.on(:click) { tweet.increment!(:likes_count) }
      
      



active record increment!



HyperComponent DLS, .





?

, . Hyperstack . , Rails Rails “convention over configuration” .





Hotwire , . , , ERB DSL. Rails, .





, . , Hotwire , Hyperstack — . , .





React. React, "state-driven" , . , (, , ) . , React , , .





: . , - . . , , . , , - . , , ? , Ruby .





: Hyperstack vs Hotwire 26 2021 . : @catprint aka Mitch VanDuyn





Del traductor

Decidimos seleccionar este artículo para cubrir varias corrientes modernas de Rails frontend. Aún no nos hemos decidido por tales herramientas hasta el final, pero hemos comenzado a usar Stimulus en varios proyectos y nos estamos moviendo hacia Hotwire.








All Articles