El procesamiento de saltos de línea en vue que no se ajustan o no surten efecto (\ n o <br>)

Introducción: me encontré con el carácter de nueva línea en vue \ n, <br> no se ajusta y no surte efecto

Primero mira un fragmento de código

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="app">
       	   <span>{
   
   {msg}}</span>
        </div>
    </body>
    <script src="../vue.js"></script>
    <script>
       var vm = new Vue({
            el: '#app',
            data: {
              msg:'这是一个消息\n这是另外一个消息',
            }
        })
    </script>
</html>

Efecto de página:

No tiene el efecto de salto de línea que queremos y el \ n en msg tampoco funciona

Solución (style = "white-space: pre-wrap;")

<span style="white-space: pre-wrap;">{
   
   {msg}}</span>

Puedes envolver en este momento

Si es br, ¿cuál será el efecto?

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="app">
       	   <span style="white-space: pre-wrap;">{
   
   {msg}}</span>
        </div>
    </body>
    <script src="../vue.js"></script>
    <script>
       var vm = new Vue({
            el: '#app',
            data: {
              msg:'这是一个消息<br>这是另外一个消息',
            }
        })
    </script>
</html>

Efecto de página:

<br> Se representó directamente en la página como un personaje y no logró el efecto de ajuste de línea.

Solución:

1. Utilice v-html para procesar

(Como se usa <br>, esta oración style = "white-space: pre-wrap;" se puede omitir)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="app">
       	   <span v-html='msg'></span>
        </div>
    </body>
    <script src="../vue.js"></script>
    <script>
       var vm = new Vue({
            el: '#app',
            data: {
              msg:'这是一个消息<br>这是另外一个消息',
            }
        })
    </script>
</html>

2. Use el filtro para procesar, reemplace <br> con \ n

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="app">
       	   <span style="white-space: pre-wrap;">{
   
   {msg | lineBreak}}</span>
        </div>
    </body>
    <script src="../vue.js"></script>
    <script>
       var vm = new Vue({
            el: '#app',
            data: {
              msg:'这是一个消息<br>这是另外一个消息',
            },
            filters:{
            	lineBreak:function(data){
            		return data.replace(/<br>/g,'\n');
            	}
            }
        })
    </script>
</html>

 

Supongo que te gusta

Origin blog.csdn.net/dkm123456/article/details/114644775
Recomendado
Clasificación