React.js 慕课网基础教程笔记摘录

这是原始资料:React 教程_入门视频

这里是上面内容的摘录:

慕课网的react内容摘记

基础样式

class Hello extends React.Component{
    render(){
        return (
            <div>Hello World</div>
        );
    }
}

ReactDOM.render(<Hello />,document.getElementById("root"));
<div class='root'></div>

class设置

class Hello extends React.Component{
    render(){
        return (
            <div className='className'>Hello World</div><br>
        );
    }
}

ReactDOM.render(<Hello />,document.getElementById("root"));
  • classReact中是关键字,所以使用className进行代替
  • 这里的重点在于让你知道设置class不是直接写class=''这样的形式的,而是className=''这样的形式
  • 或者你也可以直接在外部传递className的值:
class Hello extends React.Component{
    render(){
        return (
            <div className={this.props.className}>Hello World</div><br>
        );
    }
}

ReactDOM.render(
    <Hello className='the_real_class_name'/>,
    document.getElementById("root")
);

style设置

使用css结合class进行样式设计

就是在外部设置css样式,然后通过class定位到对应的渲染结果上去。

内联样式:style

class Hello extends React.Component{
    render(){
        return (
            <div style={{color:'red',fontSize:'24px'}}>Hello World</div>
        );
    }
}

ReactDOM.render(<Hello />,document.getElementById("root"));

跟class类似,style也同样不能直接设置对应属性,而是需要设置一个成一个对象,或许下面的形式你可能更好理解:

class Hello extends React.Component{
    render(){
        const styleName={
            color:'red',
            fontSize:'24px'
        };
        return (
            <div style={styleName}>Hello World</div>
        );
    }
}

ReactDOM.render(<Hello />,document.getElementById("root"));

生命周期

  1. mount
  2. update
  3. unmount

其中各个部分中包含的函数有:

  • componentWillMount
  • componentDidMount

  • componentWillReceiveProps
  • shouldComponentUpdate
  • componentWillUpdate
  • componentDidUpdate

  • componentWillUnmount

事件绑定

class Hello extends React.Component{
    handleClick(){
        alert("按钮被点击");
    }
    render(){
        return (
            <button onClick={this.handleClick}>Hello World</button>
        );
    }
}

ReactDOM.render(<Hello />,document.getElementById("root"));

或者你也可以传递进event参数,该参数可以像javascript的原生event一样操作,如下面这个例子:

class Hello extends React.Component{
    handleClick(event){
        alert("被点击按钮的name是:"+event.target.name);
    }
    render(){
        return (
      <div>
        <button name='我是name属性1' onClick={this.handleClick}>Hello World</button>
        <button name='我是name属性2' onClick={this.handleClick}>Hello World Again</button>
      </div>            
        );
    }
}

ReactDOM.render(<Hello />,document.getElementById("root"));

event是作为默认参数传递进处理事件的,不需要在外部显式调用!

这里穿插一个知识点,那就是如何获取DOM节点本身,这里我们都是在操作渲染的模板,但是我们没有直接操作渲染完成后的DOM对象,这里讲一下:

class Hello extends React.Component{
    handleClick(event){
        var Real_DOM=React.findDOMNode(this.refs.anyName);
        if(Real_DOM.style.display==='none'){
            Real_DOM.style.display='inline';
        }else{
            Real_DOM.style.display='none';
        }
        alert("被点击按钮的name是:"+event.target.name);
    }
    render(){
        return (
      <div>
        <button name='我是name属性1' onClick={this.handleClick}>Hello World</button>
        <span ref='anyName'>显示|隐藏</span>
        <button name='我是name属性2' onClick={this.handleClick}>Hello World Again</button>
      </div>            
        );
    }
}

ReactDOM.render(<Hello />,document.getElementById("root"));

不知道为什么,代码语法没有报错,但是功能没有实现???

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 章节1:基本原理与开发环境搭建 课时1React Native架构和原理的简单介绍15:52 课时2macOS iOS环境搭建18:38 课时3ios模拟器的使用和注意事项05:20 课时4macOS Android环境搭建16:27 课时5Windows Android环境搭建09:43 课时6Android设备的使用和注意事项07:05 课时7开发工具选用Webstorm08:51 章节2:JavaScript、Node、ES6基础 课时8Javascript基础11:58 课时9ES6基础11:16 课时10Node基础14:40 章节3:React基础一 课时11React JSX基础12:22 课时12初识React组件化开发42:38 章节4:React基础二 课时13组件的生命周期23:43 课时14组件间通信30:20 章节5:实战之前的准备 课时15官方组件和文档一览14:31 课时16项目的基本结构22:02 课时17如何规范项目代码17:32 章节6:试写电影列表 课时18基本样式和布局26:09 课时19Flexbox和多列布局24:16 课时20FlatList的基本用法13:14 课时21评分星星21:13 章节7:获取网络数据 课时22获取网络数据43:05 课时23刷新和分页的补充10:08 章节8:使用react-navigation跳转页面 课时24StackNavigator(页面跳转)24:59 课时25TabNavigator(选项卡切换)12:31 课时26针对安卓的界面调整05:20 章节9:电影详情页 课时27本地缓存数据26:17 课时28悬浮层与绝对定位19:26 课时29使用Linking调用播放视频14:29 章节10:打包发布 课时30Android打包发布09:13 课时31iOS真机调试和打包发布10:22 章节11:课程源码(见参考资料) 课时32课程源码(见参考资料)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值