react类组件在html中的使用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>React</title>

	<!-- 依赖3个包 -->
	<!-- 
		<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
		<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
		<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> 
	-->

	<!-- 我把这3个包,下载到本地了 -->
	<script src="./lib/react-development.js"></script>
	<script src="./lib/react-dom-development.js"></script>
	<script src="./lib/babel-min.js"></script>
</head>


<body>
  <div id="app"></div>
</body>


<script type="text/babel">

1、
组件中的数据分为两类:
	1.1. 参与界面更新,的数据:当数据变化时,需要更新组件渲染的内容
			参与页面的数据,称为"参与数据流",这个数据是定义在当前对象的state中的
			在`构造函数`中,用`this.state = { 变量名:变量值,变量名:变量值,... }`声明
        
			当`数据发生变化`时,可以用`this.setState`更新数据,并通知React进行update操作
			在进行update操作时,react会自动`重新调用render()`,并且使用最新的数据来渲染页面
		
    1.2. 不参与界面更新,的数据:当数据变化时,不需要更新组件渲染的内容
 
 
  class App extends React.Component {
    constructor() {
      super()
      
      this.state = {
        message: 'Hello World',
        name: 'White',
        age: 18
      }

	  提前在`构造函数`中绑定好this	
      this.btnClick = this.btnClick.bind(this)
  }

    
2、在类中直接定义一个函数,并将这个函数绑定到`元素的onClick事件`上,那么,当前这个函数的this指向的是谁呢?
	2.1、默认情况下,是`undefined`
			因为,在正常的DOM操作中,监听点击,监听函数中的this其实是节点对象(比如说是button对象)
			这里因为React并不是直接渲染成真实的DOM,我们所编写的button只是一个语法糖,它的本质是React的Element对象
			那么在这里发生监听的时候,react在执行函数时并没有绑定this,默认情况下就是一个undefined

	2.2、我们在绑定的函数中,可能想要使用当前对象,比如执行`this.setState`函数,就必须拿到当前对象的this
			可以这样做:
				在传入函数时,给这个函数直接绑定this
				如:<button onClick={this.btnClick.bind(this)}>修改</button>
    
    	
3、组件方法(实例方法)内部完成了两件事:1、将state中message修改掉;2、自动重新执行render()函数


    btnClick() {
      this.setState({
        message: 'helloReact'
      })
    }

    // 渲染内容
    render() {
      return (
        <div>
          <h2>{this.state.message}</h2>
          // 已经在构造函数中,提前绑定好this了
          <button onClick={this.btnClick}>修改文本</button>
        </div>
      )
    }

4、
	如果,不提前在`构造函数`this.btnClick = this.btnClick.bind(this) 这样绑定好this,
	就要在onClick时,绑定好,如:<button onClick={this.btnClick.bind(this)}>修改</button> 

  }


  const root = ReactDOM.createRoot(document.querySelector('#app'))
  root.render(<App />)

</script>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Django模板使用React组件,需要进行以下步骤: 1. 安装React:首先需要在你的项目安装React。你可以使用npm或yarn来安装React。安装完成后,你需要在Django模板引入React的JavaScript文件。 2. 创建React组件:在你的项目创建React组件。你可以使用ES6语法来编写组件,然后使用Babel将ES6语法转换为浏览器可识别的JavaScript代码。 3. 将React组件渲染到Django模板:在Django模板使用一个占位符来代表React组件。然后,使用JavaScript将React组件渲染到该占位符。 以下是一个简单的例子: 1. 安装React: ```bash npm install react react-dom ``` 2. 创建React组件: ```javascript // mycomponent.jsx import React from 'react'; class MyComponent extends React.Component { render() { return ( <div> <h1>Hello, World!</h1> </div> ); } } export default MyComponent; ``` 3. 将React组件渲染到Django模板: ```html <!-- mytemplate.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>My Template</title> </head> <body> <div id="my-component"></div> <script src="/path/to/react.js"></script> <script src="/path/to/react-dom.js"></script> <script src="/path/to/babel.js"></script> <script type="text/babel"> import MyComponent from './mycomponent.jsx'; ReactDOM.render(<MyComponent />, document.getElementById('my-component')); </script> </body> </html> ``` 在上面的例子,我们将React组件渲染到了一个名为“my-component”的div元素。我们使用了Babel来将ES6语法转换为浏览器可识别的JavaScript代码。注意,我们在Django模板引入了React和Babel的JavaScript文件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值