当前位置: 首页 > news >正文

react学习笔记【一】

一、 JSX语法

React中的模版语法称为JSX,在模版中可以使用html标签。ReactDOM.render()会将JSX转成HTML,然后将其渲染到指定的DOM节点。

ReactDOM.render(<h1>Hello, world!</h1>,document.getElementById('example')
);

二、在 JSX 中使用 JavaScript

尖括号 (<) 表示 HTML 语法的开始,而花括号 ( {) 表示 JavaScript 语法的开始。

var names = ['Alice', 'Emily', 'Kate'];ReactDOM.render(<div>{names.map(function (name) {return <div>Hello, {name}!</div>})}</div>,document.getElementById('example')
);

三、在 JSX 中使用数组

如果 JavaScript 变量是数组,JSX 将隐式连接数组的所有成员。

var arr = [<h1>Hello world!</h1>,<h2>React is awesome</h2>,
];
ReactDOM.render(<div>{arr}</div>,document.getElementById('example')
);

四、定义组件

class ComponentName extends React.Component创建一个组件类,该类实现一个render方法,返回该类的一个组件实例。

class HelloMessage extends React.Component {render() {return <h1>Hello {this.props.name}</h1>;}
}ReactDOM.render(<HelloMessage name="John" />,document.getElementById('example')
);

使用this.props.[attribute]来访问组件的属性。
PS:
1.组件名称的首字母必须大写,否则 React 会抛出错误。
2.一个react组件内部应该只有一个顶部子节点。

五、React 用于this.props.children访问组件的子节点。

class NotesList extends React.Component {render() {return (<ol>{React.Children.map(this.props.children, function (child) {return <li>{child}</li>;})}</ol>);}
}ReactDOM.render(<NotesList><span>hello</span><span>world</span></NotesList>,document.getElementById('example')
);

请注意,this.props.children 的值有三种可能。如果组件没有子节点,则值为undefined;如果它只有一个子节点,则值为一个对象;如果它有多个子节点,则结果为一个数组。编写代码时请记住这一点。

六、PropTypes

React 使用PropTypes来限制props的类型

//title是必须的且必须为字符串
class MyTitle extends React.Component {static propTypes = {title: PropTypes.string.isRequired,}render() {return <h1> {this.props.title} </h1>;}
}
http://www.dtcms.com/a/511575.html

相关文章:

  • Drawnix - 开源白板工具
  • 网站制作是怎么学的WordPress博客右边设置
  • go build -tags的其他用法
  • 【Unity开发】try-finally 与 try-catch 的区别详解
  • PHP数据库操作全攻略
  • 标准解读——GB/T 46353—2025《信息技术 大数据 数据资产价值评估》国家标准
  • Herm详解
  • 重庆网站建设哪家公司那家好winserver2008上用iis发布网站
  • HTML-CSS项目练习
  • 如何编写自动化测试用例?
  • 【Vibe Coding】001-前端界面常用布局
  • webview 中 cursor:pointer无效是由于-webkit-app-region导致的
  • 【C++】哈希表的实现【开放定址法vs链地址法】
  • 【业务逻辑漏洞】认证漏洞
  • 做网站在哪深圳做网站 汉狮网络
  • 修改k8s的镜像源为国内镜像源
  • Arbess从入门到实战(15) - 使用Arbess+GitHub实现Docker项目自动化构建部署
  • 【MySQL】从零开始了解数据库开发 ---mysql事务机制(一)
  • 网站建设明细盐都建设局网站
  • 基于单片机的气象站labview上位机监测系统
  • Chainlit+LlamaIndex 多模态 RAG 开发实战7:从系统架构到功能落地,搞定 PDF/PPT/ 图片全类型文件处理
  • 在VScode中将一个分支的某一次提交合并到另一个分支中
  • MAC M芯片安装配置VMware+Ubuntu
  • 免费seo推广软件网站排名优化软件联系方式
  • Nebula全球私有云网络部署与配置综合指南
  • LeetCode刷题总结
  • 阿里云代理商:如何开通阿里云文件存储?
  • gitee与github远程仓库
  • C语言需要掌握的基础知识点之字符串
  • 网站子页面如何做seo国家高新技术企业管理工作网