在Vue中将文本作为道具传递时,预换行不起作用是因为Vue默认会将传递的文本作为纯文本处理,不会解析其中的HTML标签或换行符。这样做是为了防止XSS攻击和提高安全性。
如果想要在Vue中实现预换行效果,可以通过以下几种方式解决:
<template>
<div v-html="text"></div>
</template>
<script>
export default {
data() {
return {
text: '这是一段带有<br>换行标签的文本'
}
}
}
</script>
white-space: pre-line;
或white-space: pre-wrap;
来保留换行符。<template>
<div class="text-wrapper">{{ text }}</div>
</template>
<style>
.text-wrapper {
white-space: pre-line; /* 或者 white-space: pre-wrap; */
}
</style>
<script>
export default {
data() {
return {
text: '这是一段带有换行符的文本\n换行符会被保留'
}
}
}
</script>
<br>
标签。<template>
<div>{{ text | newline }}</div>
</template>
<script>
export default {
data() {
return {
text: '这是一段带有换行符的文本\n换行符会被替换为<br>标签'
}
},
filters: {
newline(value) {
return value.replace(/\n/g, '<br>')
}
}
}
</script>
以上是几种常见的解决方法,根据具体情况选择适合的方式来实现预换行效果。
领取专属 10元无门槛券
手把手带您无忧上云