美文网首页
react项目渲染页面

react项目渲染页面

作者: symY_Y | 来源:发表于2019-05-27 11:24 被阅读0次

列表渲染

1,将元素放到数组中直接渲染

class Book extends React.Component{
    render(){
        return (
            <div>
                {[
                    <h3>射雕英雄传</h3>,
                    <h3>神雕侠侣</h3>,
                    <h3>倚天屠龙记</h3>
                ]}
            </div>
        )
    }
}
ReactDOM.render(
    <Book/>,
    document.querySelector("#wrap")
)

2,将数组在外部定义然后渲染

// 定义一个数组
var bookArr=[
    {
        siteName:"百度",
        siteUrl:"http://www.baidu.com"
    },
    {
        siteName:"阿里巴巴",
        siteUrl:"http://www.alibaba.com"
    },
    {
        siteName:"腾讯",
        siteUrl:"http://www.qq.com"
    }
]
class Book extends React.Component{
    render(){
        // 定义数组,将元素放到该数组中
        var siteElements=[];
        bookArr.forEach((item)=>{
            siteElements.push(
                <div>
                    <p>网站:{item.siteName}</p>
                    <p>网站:{item.siteUrl}</p>
                    <hr/>
                </div>
            )
        })
        return (
            <div>
                {siteElements}
            </div>
        )
    }
}
ReactDOM.render(
    <Book/>,
    document.querySelector("#wrap")
)

3,使用map对数据进行渲染

// 定义一个数组
var bookArr=[
    {
        siteName:"百度",
        siteUrl:"http://www.baidu.com"
    },
    {
        siteName:"阿里巴巴",
        siteUrl:"http://www.alibaba.com"
    },
    {
        siteName:"腾讯",
        siteUrl:"http://www.qq.com"
    }
]
class Book extends React.Component{
    render(){
        return (
            <div>
                {
                    bookArr.map((item)=>{
                        return(
                            <div>
                                <p>网站:{item.siteName}</p>
                                <p>网站:{item.siteUrl}</p>
                                <hr/>
                            </div>
                        )
                    })
                }
            </div>
        )
    }
}
ReactDOM.render(
    <Book/>,
    document.querySelector("#wrap")
)
image.png

报错啦,怎么办?对于用表达式套数组罗列到页面上的元素,都要为每个元素加上 key 属性,这个 key 必须是每个元素唯一的标识。key可以在DOM 中的某些元素被增加或删除的时候帮助 React 识别哪些元素发生了变化。所以需要给数组每一个元素增加一个唯一的标识。
一般可以将后台返回的ID作为key值,因为后台返回的ID都是唯一的。
所以需要将代码进行如下的调整,为其添加一个key。

// 定义一个数组
var bookArr=[
    {
        siteName:"百度",
        siteUrl:"http://www.baidu.com"
    },
    {
        siteName:"阿里巴巴",
        siteUrl:"http://www.alibaba.com"
    },
    {
        siteName:"腾讯",
        siteUrl:"http://www.qq.com"
    }
]
class Book extends React.Component{
    render(){
        return (
            <div>
                {
                    bookArr.map((item,index)=>{
                        return(
                            <div key={index}>
                                <p>网站:{item.siteName}</p>
                                <p>网站:{item.siteUrl}</p>
                                <hr/>
                            </div>
                        )
                    })
                }
            </div>
        )
    }
}
ReactDOM.render(
    <Book/>,
    document.querySelector("#wrap")
)

完美解决了

react组件

class Homebutton extends Component {
    render() {
       return (
           <button>
                <Link to={{ pathname: '/comments', search: ''}} className="home-link">评论</Link> 
           </button>
           <button>
                <Link to={{ pathname: '/todolist', search: ''}} className="home-link">todolist</Link> 
           </button>      
       );
    }
 }
image.png
页面报错了
class Homebutton extends Component {
    render() {
       return (
           <div>
                <button>
                   <Link to={{ pathname: '/comments', search: ''}} className="home-link">评论</Link> 
                </button>
                <button>
                   <Link to={{ pathname: '/todolist', search: ''}} className="home-link">todolist</Link> 
                </button>
           </div>         
       );
    }
 }

在return()最外层加上一个<div>元素包裹其它节点以避免此类错误

相关文章

  • react项目渲染页面

    列表渲染 1,将元素放到数组中直接渲染 2,将数组在外部定义然后渲染 3,使用map对数据进行渲染 报错啦,怎么办...

  • react-native项目使用flatList后state值改

    react-native项目使用flatList后state值改变,不重新渲染页面的问题 react-native...

  • React 文档再学习 2 增加交互

    渲染(Render)和提交(Commit) 组件展示在页面之前,须有React 渲染 (Render)。可以如此想...

  • React 实作笔记

    服务器端渲染(与客户端渲染共存) npm i express-react-view服务器端先渲染整个页面,页面组件...

  • 通过webstorm创建的React项目渲染页面

    在上一节讲了如何将React项目映射到index.html文件上 今天给大家分享下如何通过index.js文件渲染...

  • React知识点小结

    react Dom与JSX关系 react页面渲染,由三部分构成:state 数据 + JSX模版 => 真实Do...

  • React Nextjs (上)

    还是 React 的生态,今天聊聊 React 服务端渲染框架 Nextjs。 创建初始化项目 安装 react ...

  • 从中断机制看 React Fiber 技术

    前言 React 16 开始,采用了 Fiber 机制替代了原有的同步渲染 VDOM 的方案,提高了页面渲染性能和...

  • vue el-select 动态渲染卡顿优化

    在vue项目中,在页面动态渲染时,页面渲染非常慢,有时需要十多秒才能渲染完成。开始以为是el-tabs造成页面卡顿...

  • 8-生命周期

    React 组件的生命周期 React.js 将组件渲染,并且构造 DOM 元素然后塞入页面的过程称为组件的挂载。...

网友评论

      本文标题:react项目渲染页面

      本文链接:https://www.haomeiwen.com/subject/qmectctx.html