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>