Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Por qué vue tiene que contener div?

¿Por qué vue tiene que contener div?

Cuando aprendemos Vue por primera vez, el primer ejemplo que comenzamos es básicamente newVue ({el:'#app'}), pero ¿por qué una instancia de Vue solo se puede instalar en un div? Del mismo modo, cuando comenzamos a escribir nuestra primera página de Vue, intentamos escribir dos divs debajo de la etiqueta de plantilla y Vue nos recordó que solo podíamos escribir un elemento, pero ¿por qué solo puede haber un elemento? Muchas veces nos hemos acostumbrado a esto, pero no sabemos explicar por qué.

He estado en contacto con Vue por un tiempo y tengo cierto conocimiento de Vue. También uso a menudo Vuex y Vue-Router, pero cuando vi esta pregunta de la entrevista hace unos días; Sentí que no podía responder. Sentí que cada vez que escribo código, lo uso directamente sin pensar detenidamente cada vez que informo un error, simplemente cambio la forma de escribirlo, siempre que funcione; , eso es todo.

Esta vez, encontraremos que solo se representa el primer div, mientras que el segundo div permanece sin cambios. Echemos un vistazo breve a cómo el código fuente de Vue implementa esto. Puede ver que la función de montaje pasa un parámetro el, que puede ser un tipo de cadena o un elemento, es decir, un nodo dom. Lo más importante es la línea de código el=el&&query (el), y luego continúa viendo cómo lo hace la función de consulta: primero, la función de consulta determina si es un tipo de cadena, si es un tipo de cadena, los elementos. en la página se obtienen a través de la función querySelector, pero querySelector solo devuelve el primer elemento que coincide con el selector especificado, lo que explica por qué el segundo div se deja intacto.

Vue no sabe cuál es nuestra entrada, porque para la entrada, es una clase de Vue, y Vue necesita obtener todo el contenido de la entrada, renderizarlo, procesarlo y luego reinsertarlo en la entrada. dom. Si configura varias entradas al mismo tiempo, Vue no sabrá cuál es la clase.