• react第二天学习笔记


    1.react中css样式的使用方式

      1)jsx内嵌样式(这第一个大括号表示要在jsx中写js,第二个表示js对象)

        <li style = {{color : '#FF0'}}>jsx内嵌样式</li>
      2)使用className在通过css文件控制样式
        <li className = 'Red'>使用className在通过css控制样式</li>
      3)当有多个className时,也就是有多重特征时,可以从npm中下载classnames,因为classNames为方法   
        <li className = {classNames("a",{b:true,c:false})}></li>
      4)使用styled-components在原有元素的样式上包装成新的样式(扩展元素名都需要大写,且第一种表示为模板字符串``,不是引号)
        const Title = styled.h1`
          color : #F00;
        `
        const Button = styled.button({
          color: 'grey',
        });
        <Title />
     
    2.关于组件布局总结
      1)每个组件渲染时,只能拥有一个根标签,如果根标签不想用div占位时,可以使用Fragment即空组件
      2)  每个组件原则上应该都有一个文件夹
      3)  在路径问题上,react会默认寻找当前路径下的index.js,import时可以省略部分
      4)  在父js中,若仅为导出使用,可用以下格式
        export {default as List} from './list';
     
    3.关于组件中的props的总结:
      1)props是组件传递值的对象,组件可以通过添加属性来传递值,组件的子元素为props中的children值可以为元素等值
      2)类组件可以直接调用,函数组件需要通过函数名.props去调用
      3)往props里传数值时,需加大括号表示,否则即为字符串
      4)在props对象里的值进行检验时,有props-types方法,即用组件自己提供的propsTypes进行数值类型和有无的检验
     
          Test.propsTypes = {
            key : props-types.String.isRequired   (注意不能单独用isRequired,会报错)
          }
      5)对props里的值设置默认值时,组件自己提供了defaultProps
        Test.defaultProps = {   //这是函数式组件的使用方法
          key : 默认值
        }
     
    4.组件的分类:
      1)根据组件的创建方式不一样分为:
        类组件和函数组件
      2)根据组件有无state分为:
        有状态组件和无状态组件
      3)根据控制程度可分为
        完全受控组件:数据全部来自于props,数据源传递
        半受控组件:部分数据受控于数据源(props),部分数据受控于state
        不受控组件:数据受控于内部state的变化
     
    5.模板渲染的语法和props向下传递的技巧
      1)在数据源中,数据都是在构造函数中对state进行初始化操作(注意,得先调用super方法)
      2)然后利用props向下传递,不能跨组件传递,
      3)如果传递的内容中有html字符串时,可以用以下方式解译
        <div dangerousSetInnerHTML = {{_html: '<div>html字符串</div>'}} />
      4)如果在传递的数据中有数组时,可以用js中的map解析
        this.props.list.map(item => {
          return (
            <div key="key值必须给,否则会报错" value = {item.value}/>
          )
        })
     
    6.react对内部数据进行动态修改时使用setState修改数据的两种方式:(这个方法可以有两个参数, 第一个参数可以有两种情况)
      1)this.setState({对象里是state中要修改的内容})    第一个参数为对象
      2)this.setState((preState,preProps) => {    上一次的State和上一次的Props
        return  {}
      )}
      3)这个方法有第二个参数,因为这个方法是异步的,所以第二个参数是回调函数,参数是改变后的 state和props
        
      
        
     
  • 相关阅读:
    序列操作
    random模块
    windows系统杀掉explorer.exe进程后黑屏
    Apache + SVN: Could not open the requested SVN filesystem
    使用ps命令批量删除相关进程
    'pybot.bat'不是内部或外部命令,也不是可运行的程序
    安装wxpython的时候报错 “no installation of python 2.7 found in registy”
    wxPython 使用Dialog实现模态对话框
    Python os.system()出现乱码
    Git操作reset --hard失误
  • 原文地址:https://www.cnblogs.com/nyhhd/p/12298049.html
Copyright © 2020-2023  润新知