前端一直被称为项目开发的食物链底层,页面出了问题,样式不好看,数据格式不对,展示形式不对等等,第一反应被@的大都是前端。最常见的问题就是,接口返回的数据格式往往和产品要求的不符合,这时我们就要按照产品需求文档和设计稿处理成他们需要的样子。
1.JSON格式数据展示
在表单操作中,复杂的表单字段接口端会处理成JSON字符串格式。在表格展示中,为了能够用户直观的查看JSON数据,我们要处理成格式化后的结构。
例如:
js
数据返回格式如下
'{"title": "住址", "dataIndex": 'address',key: 'address'}'
但是当字段多的时候查看特别不方便,需要做如下处理
js
console.log(JSON.stringify( {
"title": "住址",
dataIndex: 'address',
key: 'address',
}, null, 4))
// 打印结果如下
{
"title": "住址",
"dataIndex": "address",
"key": "address"
}
原理:JSON.stringify语法
JSON.stringify(value[, replacer[, space]])
space可选,表示文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格。 所以根据space不同,我们可以处理成各种各样的展示形式。
js
console.log(JSON.stringify({"title": "住址",dataIndex: 'address',key: 'address'}, null, "---"))
{
---"title": "住址",
---"dataIndex": "address",
---"key": "address"
}
console.log(JSON.stringify({"title": "住址",dataIndex: 'address',key: 'address'}, null, "\t"))
{
"title": "住址",
"dataIndex": "address",
"key": "address"
}
console.log(JSON.stringify({"title": "住址",dataIndex: 'address',key: 'address'}, null, " "))
{
"title": "住址",
"dataIndex": "address",
"key": "address"
}
插一个题外话,同样的项目如果不同后端开发可能对于同样的数据结构返回不同的数据格式,这个方法也能很好的处理 如:
js
//有些人按照习惯的方式将树状结构的子结构写成children
{
a: 1,
children: [
{b: 1}
]
}
//但是有些人就随心所欲惯了,非写成childList
{
a: 1,
childList: [
{b: 1}
]
}
我们处理数据的时候得考虑将其处理成统一的格式
js
JSON.stringify({
a: 1,
childList: [
{b: 1}
]
}).replace("childList", "children")
2.使用<pre>标签
开发中一般textarea类型的表单经常返回如下格式数据
js
"此例演示如何使用 pre 标签 \n对空行和 空格\n进行控制"
处理该类数据,直接在外层套一个pre
标签
js
var a = "此例演示如何使用 pre 标签 \n对空行和 空格\n进行控制";
<pre>{a}</pre>
3. React中使用dangerouslySetInnerHTML
开发中不乏来自第三方编辑器的数据,格式如下:
js
<p>这是一段文本段落</p>
<br/>
<div>这是另一段</div>
处理该类数据,我们使用该属性
js
var a = "<p>这是一段文本段落</p>
<br/>
<div>这是另一段</div>"
<div dangerouslySetInnerHTML={{__html: a}}></div>