循环渲染props时如何在textarea指定位置插入换行?
解决textarea循环渲染时的换行与代码可读性问题
针对你遇到的在textarea循环渲染中插入换行的问题,给你几个实用方案:
方案1:利用模板引擎的空白控制语法
多数模板引擎(如Handlebars、Lodash模板等)支持通过{{- }}或{{~ }}这类语法修剪标签周围的空白,并输出真实换行。比如:
<div> <textarea>{{props value.something}}{{:key}}: {{:prop}}{{- '\n'}}{{/props}}</textarea> </div>
这里{{- '\n'}}会在每个键值对后输出一个真实换行,同时不会保留模板中的多余空格,既保持了代码的紧凑可读性,又能得到正确的换行效果。
方案2:预处理数据为带换行的字符串
在渲染模板前,先把需要展示的内容拼接成带换行的字符串,再直接渲染:
// 假设value.something是键值对对象 const textContent = Object.entries(value.something) .map(([key, prop]) => `${key}: ${prop}`) .join('\n');
然后模板中直接引用处理好的字符串:
<div> <textarea>{{textContent}}</textarea> </div>
这种方式模板代码最简洁,也能完全控制换行的数量和格式,不会出现多余缩进或换行。
方案3:调整模板换行位置(优化临时写法)
如果不想改逻辑,也可以优化你的临时写法,通过对齐模板标签保持可读性:
<div> <textarea>{{props value.something}}{{:key}}: {{:prop}} {{/props}}</textarea> </div>
把{{/props}}顶格写,避免引入多余缩进,同时保持模板结构清晰。
内容的提问来源于stack exchange,提问作者Matías Cánepa
相关产品推荐
相关产品推荐

