Ahora podemos usar este componente RecursiveRow dentro de su componente principal para manejar el diseño de nivel superior.
Eso es todo. Si tiene alguna pregunta, deje un comentario a continuación.
","image":"http://www.luping.net/uploads/20241022/17295566466716f0a64994b.png","datePublished":"2024-11-01T01:01:07+08:00","dateModified":"2024-11-01T01:01:07+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}La inspiración para este artículo proviene de una implementación reciente que hice para crear diseños dinámicos en una interfaz basada en Vue.
Supongamos que el punto final de su API devuelve un diseño YAML como el siguiente.
--- row: - col: 12 row: - col: 12 component_id: 1 - col: 12 row: - col: 6 component_id: 2 - col: 6 row: - col: 12 component_id: 3 - col: 12 component_id: 4
Esperaríamos un diseño como el siguiente de esta expresión YAML.
Para que sea fácil trabajar con esto, analizaremos esta estructura YAML y generaremos un objeto JSON. Usé el paquete yaml.
npm install yaml
Luego, podríamos importarlo y ejecutar el analizador.
import YAML from 'yaml' const jsonObject = YAML.parse(yaml_struct)
Para que esto funcione, necesitamos crear una plantilla de Vue recursiva y un componente que pueda llamarse a sí mismo de forma recursiva cuando encuentre filas anidadas. De esta manera, la estructura manejará dinámicamente diseños profundamente anidados como el que proporcioné.
Ahora podemos usar este componente RecursiveRow dentro de su componente principal para manejar el diseño de nivel superior.
Eso es todo. Si tiene alguna pregunta, deje un comentario a continuación.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3