资讯专栏INFORMATION COLUMN

react的漫漫之路

nanfeiyan / 1109人阅读

摘要:初始数据落叶丶啦啦啦初始化账号用户名需要用一个标签来包裹落叶丶的小站和把组件看成是一个状态机。通过与用户的交互,实现不同状态,然后渲染,让用户界面和数据保持一致。函数中的点击事件和普通的差不多,但是要注意中的要大写,否则会报错。

学习React不是一蹴而就的事情,入门似乎也没那么简单。但我觉得这一切都是值得的。
这是我在学习React中的一些心得,希望能够帮助到大家!
React可以使用两种样式,一种是普通的css,一种是在React中定义的样式。
普通的css样式,通过className=""来引用

账号:
React中定义的样式,通过style={}来引用
//React的css样式
    var style_1={
        color:"#9900ff",
        padding:3,
    }

组件

构建组件(名字随意起,首字母要大写),我这里构建了一个叫Board的组件,然后通过getInitialState进行初始化。通过ReactDOM.render加载到html页面中。如果ReactDOM.render中有多个组件或者标签,则需要用一个div标签来包裹。
var Board = React.createClass({
        //初始数据
        getInitialState: function(){
            return ({
                comments: [{account:"123456",name:"落叶丶Fly"},{account:"111111",name:"啦啦啦"}]
            });
         
       },
//初始化
        eachComment: function(text,i){
            return (
                
                    

账号: {text.account}

用户名: {text.name}
); }, ReactDOM.render( //需要用一个div标签来包裹

落叶丶Fly的React小站

, document.getElementById("container") ); props和state

state:React 把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。

props:state 和 props 主要的区别在于 props 是不可变的,而 state 可以根据与用户交互来改变。这就是为什么有些容器组件需要定义 state 来更新和修改数据。 而子组件只能通过 props 来传递数据。

函数

React中的button点击事件和普通的JavaScript差不多,但是要注意onClick中的C要大写,否则会报错。本文通过按钮点击来更改editing的布尔值,用setState函数进行更新,从而在普通模式与编辑模式中切换。

        //编辑
        edit: function(){
            this.setState({editing: true});
        },
        //保存
        save: function(){
            var val = this.refs.new_account.value;
            var val1 = this.refs.new_name.value;
            console.log("拿到的值是: " + val+val1);
            this.props.updateCommentText(val,val1,this.props.index)
            this.setState({editing: false});
        },
        //普通模式
        renderNormal:function(){
            return (
                
{this.props.children}
); }, //编辑模式 renderForm:function(){ let children = this.props.children return (
) }, //模式更改 render: function (){ //console.log(this.props) if(this.state.editing){ return this.renderForm(); }else{ return this.renderNormal(); } } 全部代码 React-Template

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40237.html

相关文章

  • 一次网站性能优化之路 -- 天下武功,唯快不破

    摘要:百度搜索资源平台有闪电算法的支持,为了能够保障用户体验,给予优秀站点更多面向用户的机会,闪电算法在年月初上线。下栏是每一个指标的细化性能评估。最后优化之路漫漫,永无止境,天下武功,唯快不破。 showImg(https://segmentfault.com/img/remote/1460000018537491); 首屏作为直面用户的第一屏,其重要性不言而喻,如何加快加载的速度是非常重...

    mudiyouyou 评论0 收藏0
  • 某熊技术之路指北 ☯

    某熊的技术之路指北 ☯ 当我们站在技术之路的原点,未来可能充满了迷茫,也存在着很多不同的可能;我们可能成为 Web/(大)前端/终端工程师、服务端架构工程师、测试/运维/安全工程师等质量保障、可用性保障相关的工程师、大数据/云计算/虚拟化工程师、算法工程师、产品经理等等某个或者某几个角色。某熊的技术之路系列文章/书籍/视频/代码即是笔者蹒跚行进于这条路上的点滴印记,包含了笔者作为程序员的技术视野、...

    shadowbook 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<