BH | |
---|---|
Tipo de | motor de plantillas |
Desarrollador | Comunidad BEM |
Escrito en | JS , PHP (versiones oficiales) |
Sistema operativo | Software multiplataforma |
Licencia | Licencia MIT |
Sitio web | bem.github.io/bh |
BH ( B EM H TML ) es un motor de plantillas declarativas de compilación para JS .
BH le permite modificar los nodos del árbol DOM de la misma manera que lo hace CSS , en forma declarativa.
Tener una declaración JS :
bh _ coincidencia ( 'botón' , función ( ctx ) { ctx . etiqueta ( 'botón' ); }); bh _ coincidencia ( 'button_legacy' , function ( ctx , json ) { ctx . tag ( 'input' ); ctx . attr ( 'type' , 'button' ); ctx . attr ( 'value' , json . content ); }) ; bh _ coincidencia ( 'button_submit' , function ( ctx , json ) { ctx . tag ( 'input' ); ctx . attr ( 'type' , 'submit' ); ctx . attr ( 'value' , json . content ); }) ;O una declaración similar en la sintaxis de PHP :
$bh -> partido ( 'botón' , función ( $ctx ) { $ctx -> etiqueta ( 'botón' ); }); $bh -> coincidencia ( 'button_legacy' , función ( $ctx , $json ) { $ctx -> etiqueta ( 'input' ); $ctx -> attr ( 'tipo' , 'botón' ); $ctx -> attr ( 'valor' , $json -> contenido ); }); $bh -> coincidencia ( 'button_submit' , función ( $ctx , $json ) { $ctx -> etiqueta ( 'input' ); $ctx -> attr ( 'type' , 'submit' ); $ctx -> attr ( 'valor' , $json -> contenido ); });Y datos de entrada:
[ { "bloquear" : "botón" , "contenido" : "Solo un botón" }, { "bloquear" : "botón" , "mods" : { "enviar" : verdadero }, "contenido" : "botón Enviar" } , { "bloquear" : "botón" , "mods" : { "heredado" : verdadero }, "contenido" : " botón heredado" }, { "bloquear" : "botón" , "mods" : { "heredado " : verdadero , "enviar" : verdadero }, "contenido" : "Botón de enviar de estilo antiguo" } ]Obtenemos el resultado:
< clase de botón = "botón" > Solo un botón </ botón > < clase de entrada = "botón button_submit" tipo = "enviar" valor = "botón Enviar" /> < clase de entrada = "botón button_legacy" tipo = valor de "botón" = "Botón heredado" /> < clase de entrada = "botón button_legacy button_submit" type = "enviar" value = "Botón de envío de estilo antiguo" />Las implementaciones oficiales de BH están escritas en JavaScript y PHP .