iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >你知道怎么在HTML页面中使用React吗
  • 259
分享到

你知道怎么在HTML页面中使用React吗

2024-04-02 19:04:59 259人浏览 泡泡鱼
摘要

目录index.html代码:index.js代码:ReactComponentContainer.js代码:HelloReact.jsx代码:遇到的问题:gitee代码地址:总结该

该方案使用场景:在html页面中使用react,主js文件index.js和其它非react功能使用js模块化的方式开发,适合轻量级中小型应用

index.html代码:

引入reactreact-dombabelmomentantd

<!DOCTYPE html>
<html lang='zh-CN'>
<head>
    <title>React in HTML</title>
    <meta charset="utf-8" />
    <meta Http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="libs/antd/antd.min.CSS">
    <link rel="stylesheet" href="css/index.css">
    <style type="text/css">
    </style>
    <script type="text/javascript" src="libs/Jquery-1.9.1.js"></script>
    <script type="text/javascript" src="libs/react/react.production.min.js"></script>
    <script type="text/javascript" src="libs/react/react-dom.production.min.js"></script>
    <script type="text/javascript" src="libs/babel/babel.min.js"></script>
    <script type="text/javascript" src="libs/moment/moment-with-locales.min.js"></script>
    <script type="text/javascript" src="libs/antd/antd-with-locales.min.js"></script>
</head>
<body>
    <input id='btn' type="button" class="index-btn" value="显示React组件" />
    <script type="text/babel" src="components/HelloReact.jsx"></script>
    <script type="module" src="index.js"></script>
</body>
</html>

index.js代码:

import { ReactComponentContainer } from './ReactComponentContainer.js'
let isshow = true;
let helloReactContainer;
$('#btn').on('click', function () {
    if (isShow) {
        helloReactContainer = new ReactComponentContainer('helloReact', HelloReact, { name: 'React' });
        helloReactContainer.show();
        isShow = false;
        $(this).val('隐藏React组件');
    } else {
        helloReactContainer.hide();
        isShow = true;
        $(this).val('显示React组件');
    }
});

ReactComponentContainer.js代码:

该模块用于在html中显示隐藏react组件

class ReactComponentContainer {
    component
    componentProps
    componentContainerId
    constructor(componentContainerId, component, componentProps) {
        if ($('#' + componentContainerId).length == 0) {
            $('body').append('<div id="' + componentContainerId + '"></div>');
        }
        this.componentContainerId = componentContainerId;
        this.component = component;
        this.componentProps = componentProps;
    }
    render(isShow) {
        ReactDOM.render(
            React.createElement(
                antd.ConfigProvider,
                {
                    locale: antd.locales.zh_CN
                },
                React.createElement(this.component, Object.assign({ isShow: isShow }, this.componentProps))
            ),
            document.getElementById(this.componentContainerId)
        );
    }
    show() {
        this.render(true);
    }
    hide() {
        this.render(false);
    }
}
export { ReactComponentContainer }

HelloReact.jsx代码:

class HelloReact extends React.Component {
    dateFORMat = 'YYYY-MM-DD'
    timeFormat = 'HH:mm:ss'
    constructor(props) {
        super(props);
        let now = new Date().valueOf();
        this.state = {
            dateStr: moment(now).format(this.dateFormat),
            timeStr: moment(now).format(this.timeFormat)
        }
        this.onChangeDate = this.onChangeDate.bind(this);
        this.onChangeTime = this.onChangeTime.bind(this);
        this.updateDatePickerAndTimePicker = this.updateDatePickerAndTimePicker.bind(this);
    }
    onChangeDate(date, dateString) {
        this.setState({ dateStr: dateString });
    }
    onChangeTime(time, timeString) {
        this.setState({ timeStr: timeString });
    }
    updateDatePickerAndTimePicker() {
        let now = new Date().valueOf();
        this.setState({
            dateStr: moment(now).format(this.dateFormat),
            timeStr: moment(now).format(this.timeFormat)
        });
    }
    render() {
        return <div style={{ display: this.props.isShow ? '' : 'none' }}>
            <h1>Hello {this.props.name}, Now is {this.state.dateStr} {this.state.timeStr}</h1>
            <antd.DatePicker onChange={this.onChangeDate} value={moment(this.state.dateStr, this.dateFormat)} />
             
            <antd.TimePicker onChange={this.onChangeTime} value={moment(this.state.timeStr, this.timeFormat)} />
            <br />
            <antd.Button type="primary" size="default" style={{ marginTop: '10px' }} onClick={this.updateDatePickerAndTimePicker} >更新日期时间控件值</antd.Button>
        </div>;
    }
}

效果图:

浏览器按F12弹出DevTools,在Sources选项卡中可以看到组件代码,方便打断点调试

遇到的问题:

无法使用es6的import语法导入react组件,es6的import和require.js都不认识jsx

react组件不是按需加载,只适合小型应用

Gitee代码地址:

https://gitee.com/zjvngvn/react-in-html

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: 你知道怎么在HTML页面中使用React吗

本文链接: https://www.lsjlt.com/news/163767.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 你知道怎么在HTML页面中使用React吗
    目录index.html代码:index.js代码:ReactComponentContainer.js代码:HelloReact.jsx代码:遇到的问题:Gitee代码地址:总结该...
    99+
    2024-04-02
  • 在react中使用mockjs的方法你知道吗
    目录介绍安装&卸载&引入基础语法&规范 7种生成规则生成规则和属性值value的关系占位符@模拟接口总结介绍 mock意为“模仿&rdq...
    99+
    2024-04-02
  • 在HTML页面中如何使用React
    这篇文章主要介绍了在HTML页面中如何使用React的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇在HTML页面中如何使用React文章都会有所收获,下面我们一起来看看吧。该方案使用场景:在html页面中使用r...
    99+
    2023-06-29
  • 你知道怎么在Go中使用重定向吗?
    当我们使用Go语言进行网络编程时,重定向是一个非常常见和有用的技术。重定向可以将一个URL或者请求重定向到另一个URL或者请求。在本文中,我们将探讨如何在Go中使用重定向。 在Go语言中,我们可以使用net/http包中的Redirect函...
    99+
    2023-06-01
    重定向 框架 并发
  • 你知道如何在Go中使用Git吗?
    Go是一种非常流行的编程语言,它的简洁、高效、安全和易于学习的特点让它成为了许多开发者的选择。Git则是一种非常强大的版本控制系统,它可以让我们更加方便地管理代码。那么,你知道如何在Go中使用Git吗?本文将为你详细介绍。 一、安装Git ...
    99+
    2023-11-15
    git 索引 并发
  • 你知道怎样在Go中使用Django缓存吗?
    当我们在使用Django构建Web应用程序时,缓存是一个非常重要的方面。缓存可以帮助我们提高应用程序的性能和响应时间,减少数据库的查询次数。在本文中,我们将讨论如何在Go中使用Django缓存。 Django缓存是一个内置的缓存框架,它提供...
    99+
    2023-10-26
    django bash 缓存
  • 你知道如何在Java IDE中使用Bash吗?
    在现代软件开发中,Java是一种极其流行的编程语言。Java开发人员经常使用Java集成开发环境(IDE)来编写、调试和测试Java代码。同时,Bash是一种流行的Unix shell,它提供了强大的命令行工具和脚本语言。虽然Java开发...
    99+
    2023-06-17
    ide bash javascript
  • 你知道如何在 Go 中使用数组吗?
    当我们编写程序时,经常需要使用到数组。在 Go 语言中,数组是一种简单而强大的数据结构,它可以存储一组相同类型的数据。在本文中,我们将探讨如何在 Go 中使用数组。 声明数组 在 Go 中,声明数组的语法如下: var a [5]int...
    99+
    2023-08-18
    开发技术 数组 关键字
  • 你知道如何在Laravel中使用对象吗?
    Laravel是一种流行的PHP Web应用程序框架,它提供了一系列的工具和服务来帮助开发者快速构建高质量的Web应用程序。在Laravel中,对象是一种非常重要的概念。本文将介绍如何在Laravel中使用对象。 在Laravel中,对象是...
    99+
    2023-09-25
    编程算法 laravel 对象
  • 你真的知道如何在Go中使用Git吗?
    在现代软件开发中,Git已经成为了最流行的版本控制系统之一。而Go语言则是一种相对新的编程语言,它具有简洁、高效和可靠等特点。对于大多数Go开发者来说,掌握如何在Go中使用Git是非常重要的。在本篇文章中,我们将深入探讨如何在Go中使用Gi...
    99+
    2023-10-12
    git shell 函数
  • 你知道如何在Windows中使用Python和npm吗?
    当今,Python和npm已成为程序员们日常工作中必不可少的工具。在Windows系统中使用Python和npm可以大大提高工作效率。但是,很多初学者对于如何在Windows中使用Python和npm还不够熟悉。因此,在本文中,我们将为大家...
    99+
    2023-10-14
    npm shell windows
  • 你知道如何在 Java 文件中使用 Numpy 吗?
    作为一名 Java 程序员,你可能已经听说过 NumPy 这个 Python 库。但是你是否知道,你也可以在 Java 文件中使用 NumPy 来处理数值数据?本文将向你介绍如何在 Java 文件中使用 NumPy,以及如何使用 NumPy...
    99+
    2023-06-28
    文件 javascript numpy
  • 你知道如何在 Spring 中使用 ASP 函数吗?
    Spring 是一个流行的 Java 开发框架,它提供了各种功能和工具来简化开发过程。其中,ASP 函数是 Spring 中一个非常有用的功能,它可以帮助我们快速地实现一些常见的数据操作。 ASP 函数是 Spring 框架中的一个核心功能...
    99+
    2023-09-05
    函数 spring git
  • 你真的知道如何在 PHP 中使用 NumPy 吗?
    在 PHP 中使用 NumPy 是一项非常强大的功能。NumPy 是一个 Python 库,提供了高性能的多维数组和矩阵计算功能。它是数据科学和机器学习领域中不可或缺的工具之一。虽然 PHP 不是一种数据科学或机器学习语言,但它仍然可以使用...
    99+
    2023-10-11
    关键字 git numpy
  • 你知道如何在IDE中使用PHP数组吗?
    当你在使用PHP编程时,数组是非常常用的一种数据类型。PHP数组可以存储多个值,并且可以通过索引或关联键来访问这些值。在IDE中使用PHP数组可以大大提高开发效率,下面就让我们来了解一下如何在IDE中使用PHP数组。 创建PHP数组 在ID...
    99+
    2023-06-14
    bash 数组 ide
  • 你知道怎么在面试中展示你的 NumPy 和打包技能吗?
    当你正在寻找一份数据科学或机器学习的工作时,展示你的 NumPy 和打包技能是非常重要的。这些技能是在这些领域中非常常用的,因此,展示你对它们的理解和运用能够让面试官看到你的技能和经验水平。在本文中,我们将讨论一些可以在面试中展示这些技能的...
    99+
    2023-08-24
    打包 面试 numpy
  • 你知道如何在ASP中使用HTTP协议吗?
    ASP(Active Server Pages)是一种基于服务器端脚本技术的web开发语言,它可以与HTTP协议相结合,实现与客户端的交互。在ASP中使用HTTP协议可以使我们更好地处理客户端与服务器端之间的通信。本文将介绍如何在ASP中使...
    99+
    2023-10-22
    开发技术 ide http
  • 你知道如何在 Laravel 中使用 Python 接口吗?
    当今软件开发领域中,Laravel 是一个备受追捧的 PHP Web 开发框架,而 Python 则是一门功能强大且易于使用的编程语言。那么,如何在 Laravel 中使用 Python 接口呢?本文将为你提供一些有用的指导。 为什么使用 ...
    99+
    2023-09-06
    接口 laravel path
  • 你知道如何在 shell 中使用 Python 编程吗?
    当我们在 shell 中进行命令行操作时,有时候会需要进行一些简单的编程操作,这时候 Python 就是一个很好的选择。Python 作为一种高级编程语言,拥有丰富的库和函数,能够帮助我们完成很多复杂的任务。在本文中,我们将会探讨如何在 s...
    99+
    2023-08-07
    编程算法 shell linux
  • 你知道如何在 Windows 上使用 npm 吗?
    当今的前端开发中,使用npm作为包管理器已经成为了一个标准。它提供了一种简单而且有效的方式来管理我们的项目所需的依赖。但是,如果你是一个新手,你可能会不知道如何在Windows上使用npm。本文将介绍如何在Windows上安装和使用npm。...
    99+
    2023-11-11
    windows npm git
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作