5、React组件间通信
通过props 传递 共同的数据放在父组件上, 特有的数据放在自己组件内部(state) 通过props 可以传递一般数据和函数数据, 只能一层一层传递 一般数据–>父组件传递数据给子组件–>子组件读取数据 函数数据–>子组件传递数据给父组件–>子组件调用函数 使用消息订阅(subscribe)-发布(publish)机制 使用工具库PubSubJS工具库实现。 yarn add pubsub-js 使用 import PubSub from 'pubsub-js' //引入 PubSub.subscribe('delete', function(msg,data){ }); //订阅 PubSub.publish('delete', data) //发布消息 发布消息可以理解为触发事件,订阅消息可以理解为监听事件。 通过redux传递 待补充
4、React发送Ajax请求
Axios示例 class MostStart extends React.Component { state = { repoName: '', repoUrl: '' } async componentDidMount() { // 发送Ajax请求 const url = `https://api.github.com/search/repositories?q=r&sort=stars` const { data: res } = await axios.get(url) const { html_url, name } = res.items[0] this.state.repoUrl = html_url this.state.repoName = name this.setState({ html_url, name }) } render() ...
3、React脚手架
脚手架 npm install -g create-react-app create-react-app hello-react cd hello-react npm start 基于脚手架编写项目 入口文件./src/index.js import React from 'react'; import ReactDOM from 'react-dom'; import './index.css' import App from './components/app' ReactDOM.render(<App />, document.getElementById('root')); 组件App import React,{Component} from 'react' import Logo from '../logo.svg' export default class App extends Component{ render(){ return( <div> <img ...
2、React模块与组件
模块与组件的理解 模块 向外提供特定功能的js 程序, 一般就是一个js 文件 复用js, 简化js 的编写, 提高js 运行效率 组件 用来实现特定(局部)功能效果的代码集合(html/css/js) 复用编码, 简化项目编码, 提高运行效率 组件的基本使用 创建组件有两种方式 工厂函数组件 简单组件,通过函数返回值即可。函数名就是组件(标签)名。 function MyComponent() { return <h2>工厂函数组件(简单组件)</h2> } ReactDOM.render(<MyComponent />, document.getElementById('test')) ES6类组件 复杂组件,通过ES6类中的render方法。 class MyComponent2 extends React.Component { render() { return <h2>ES6类组件(复杂组件)</h2> } } Rea ...
1、React基础用法及JSX
基本使用 <body> <div id="test"></div> <!-- 核心库 --> <script src="../../js/react.development.js"></script> <!-- 提供DOM操作的扩展库 --> <script src="../../js/react-dom.development.js"></script> <!-- 解析JSX语法代码转为纯JS --> <script src="../../js/babel.min.js"></script> <script type='text/babel'> // 告诉babel.js解析里面的jsx代码 // 1. 创建虚拟DOM元素对象 var vDom = <h1>Hello React!</h1> // 2. 将虚拟DOM渲染到真实的DOM容器中 ReactDOM.render(vDom, documen ...








