react基础语法(五) state和props区别和使用
props的验证:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
- <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
- <!-- 生产环境中不建议使用 -->
- <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
- <script src="https://cdn.bootcss.com/prop-types/15.6.1/prop-types.js"></script>
- </head>
- <body>
- <div id="app">
- </div>
- <script type="text/babel">
- //props验证借助第三方库 prop-types.js
- var title = "验证传过来的数据类型是否正确?";
- //var title = 666;
- class Title extends React.Component {
- render() {
- return (
- <h1>得到的props验证:{this.props.title}</h1>
- );
- }
- }
- Title.propTypes = {
- title: PropTypes.string //属性 title 是必须的且是字符串,非字符串类型会自动转换为字符串并且控制台警告如title = 666;
- };
- ReactDOM.render(
- <Title title={title} />,
- document.getElementById('app')
- );
- </script>
- </body>
- </html>
state和props的互用:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
- <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
- <!-- 生产环境中不建议使用 -->
- <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
- </head>
- <body>
- <div id="app">
- </div>
- <!--Props验证-->
- <!--React.PropTypes在 React v15.5 版本后已经移到了 prop-types 库。-->
- <!--<script src="https://cdn.bootcss.com/prop-types/15.6.1/prop-types.js"></script>-->
- <script type="text/babel">
- //state和 props主要的区别在于 props是不可变的,而 state可以根据与用户交互来改变;
- //子组件只能通过 props来传递数据;
- //组合使用 state 和 props;
- class WebSite extends React.Component {
- constructor() {
- super();
- this.state = { //父组件中设置 state,并通过在子组件上使用 props将其传递到子组件上;
- name: "react基础语法",
- website: "https://www.baidu.com"
- }
- }
- render() {
- //设置 name和 website来获取父组件传递过来的数据
- return (
- <div>
- <Name name={this.state.name} />
- <Web website={this.state.website} />
- </div>
- );
- }
- }
- class Name extends React.Component {
- render() {
- return (
- <h1>{this.props.name}</h1>
- );
- }
- }
- class Web extends React.Component {
- render() {
- return (
- <a href={this.props.website}>
- {this.props.website}
- </a>
- );
- }
- }
- ReactDOM.render(
- <WebSite />,
- document.getElementById('app')
- );
- </script>
- </body>
- </html>
react基础语法(五) state和props区别和使用的更多相关文章
- react基础篇五
再看JSX 本质上来讲,JSX 只是为 React.createElement(component, props, ...children) 方法提供的语法糖.比如下面的代码: <MyButto ...
- react 基础语法复习3- 数据传递 & 数据变化(props&&state)
react当中的数据传递是通过 props以及 state来实现的 props <Header name="kugeliu" /> Header组件当中有个name属性 ...
- react基础语法(四) state学习
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- React基础语法学习
React主要有如下3个特点: 作为UI(Just the UI) 虚拟DOM(Virtual DOM):这是亮点 是React最重要的一个特性 放进内存 最小更新的视图,差异部分更新 diff算法 ...
- react基础语法二
这里只是对自己的学习进行一次总结,也是为了让自己以后如果长时间不使用快速记忆起来的笔记,如果想要学习,还是去官网看文档比较好一些.. 注意 下面的代码的 script标签的type类型都为 “text ...
- react 基础语法使用
刚开始不久react,在菜鸟上及其他前辈网站上学习,下面开始我的自学笔记. 包括: 渲染元素 组件(函数方法定义.es6 class定义) 事件处理 条件渲染 列表 下面代码部分将不会再写html部分 ...
- react基础语法(一)元素渲染和基础语法规则
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- react 基础语法复习2- react入门以及JSX
引入 react 以及 ReactDom import React from 'react'; import ReactDOM from 'react-dom'; 将react组件渲染到真实dom节点 ...
- react基础语法(三)组件的创建和复合组件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
随机推荐
- laravel打印原生语句
laravel中快捷方便的打印语句的方法步骤一:DB::connection()->enableQueryLog();$data["banner"] = WebsiteBan ...
- Dijkstra再理解+最短路计数
众所周知,Dijkstra算法是跑单源最短路的一种优秀算法,不过他的缺点在于难以处理负权边. 但是由于在今年的NOI赛场上SPFA那啥了(嗯就是那啥了),所以我们还是好好研究一下Dij的原理和它的优化 ...
- CMake学习记录--list(列表操作命令)
CMake是一个跨平台的工程管理工具,能方便的把工程转换为vs各个版本.Borland Makefiles.MSSYS Makefiles.NMake Makefiles等工程,对于经常在不同IDE下 ...
- Code:zabbix 目录
ylbtech-Code:zabbix 目录 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://y ...
- LightOJ 1140 How Many Zeroes? (数位DP)
题意:统计在给定区间内0的数量. 析:数位DP,dp[i][j] 表示前 i 位 有 j 个0,注意前导0. 代码如下: #pragma comment(linker, "/STACK:10 ...
- React 从入门到进阶之路(九)
之前的文章我们介绍了 React propTypes defaultProps.接下来我们将介绍 React 生命周期函数. 之前我们已经根据 create-react-app 模块创建了一个 Re ...
- POJ2533/hdoj1950【DP】
O(nlog(n))的方法: 定义d[k]:长度为k的上升子序列的最末元素,若有多个长度为k的上升子序列,则记录最小的那个最末元素. d中元素也是单调递增的. #include <iostrea ...
- template code 引用的一些问题
1.问题: 引用同一个norlib.tt 下面的tt . 一个KSTrade 正确. 一个 NDAP就报错. 报错说源文件某个函数有错误 helper.Common.tt 错误 2.结果: NDAP ...
- ssh密钥的分发之一:ssh-copy-id
ssh密钥的分发 我们在使用客户端账号对主机记性管理的时候,可以分为以下两种情况: .第一种情况,直接使用root账号: 优点:使用root账号密钥分发简单,指令执行简单 缺点:不安全 .第二种情况, ...
- Xor-sequences CodeForces - 691E || 矩阵快速幂
Xor-sequences CodeForces - 691E 题意:在有n个数的数列中选k个数(可以重复选,可以不按顺序)形成一个数列,使得任意相邻两个数异或的结果转换成二进制后其中1的个数是三的倍 ...