P1 用reactjs和bootstrap创建页面IDE

文章目录

    • 页面IDE展示:
    • 要求:
    • 安装好Node.js
    • reactjs组件化开发

页面IDE展示:

在这里插入图片描述

要求:

希望能够达到eclipse辅助编程的功能
关键字提醒,高亮
1, 有类似C语言的语法结构
2, 支持变量绑定
3, 支持整形和布尔型数据类型
4, 支持算术表达式的解析
5, 一级类定义(first-class)和高阶函数(higher order functions)
6, 支持闭包,这点像javascript
7, 支持字符串数据类型
8,支持数组型数据类型
9, 支持哈希表型数据类型

安装好Node.js

npm install --global create-react-app

create-react-app是通过npm模块发布的一个安装包,通过该工具,我们能快速创建一个node.js项目

npm install --save react-bootstrap

用来安装试用于react框架的bootstrap UI控件库,将使用它来开发我没Monkey编程语言的IDE

create-react-app monkey_compiler

在本地目录创建一个名为monkey_compiler的目录,它是一个可以运行的reactjs项目,因此可以直接修改或者添加

cd monkey_compiler
npm start

命令会启动一个开发模式的服务器,同时会自动调用浏览器打开一个页面
另:构建React-app应用时create-react-app卡住超慢的解决办法
解决方法是换源:

npm config set registry https://registry.npm.taobao.org
-- 配置后可通过下面方式来验证是否成功
npm config get registry
-- 显示出上述地址的话就是更换成功

下的真够慢的。。
在这里插入图片描述

reactjs组件化开发

通过乐高式搭积木的方式,逐步开发一个功能丰富的页面IDE出来。通过react组件组成我们想要的东西
总项目目录:
在这里插入图片描述
node_modules安装各种组件,react-bootstrap就下载在里面
在monkey-compiler项目中,有一个目录叫src/,该目录用于存放项目的所有代码文件

在这里插入图片描述
打开其中的index.js
在这里插入图片描述
其中的app就是一个组件

public里面含有的index.html
public目录

对其进行修改,修改后为:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import MonkeyCompilerIDE from './MonkeyCompilerIDE';
import registerServiceWorker from './registerServiceWorker';ReactDOM.render(<MonkeyCompilerIDE />,document.getElementById('root')
);// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
registerServiceWorker();

在MonekyCompilerIDE.js中填写代码:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import MonkeyCompilerIDE from './MonkeyCompilerIDE';
import registerServiceWorker from './registerServiceWorker';ReactDOM.render(<MonkeyCompilerIDE />, document.getElementById('root'));
registerServiceWorker();

注:大多数浏览器不支持es6这种编程方式,之所以用类似于面向对象的方式来写的代码浏览器可以执行,是因为react这个框架下面有个小型编译器叫babel,会把es6的js代码编译成es5js代码,这样所有编译器就可以执行。
jsx(javascript extension),
实现与前端的交互

<bootstrap.Panel header="Monkey Compiler" bsStyle="success"><bootstrap.FormGroup><bootstrap.FormControl componentClass = "textarea" style={textAreaStyle}placeholder="Enter your code" /></bootstrap.FormGroup><bootstrap.Button bsStyle="danger">Lexing</bootstrap.Button>
</bootstrap.Panel>

由于我们使用到了boostrap控件库,因此需要从外部引用相关的css样式文件,回到根目录,进入public目录,打开index.html,在其头部添加如下代码:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/latest/css/bootstrap.min.css">

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

所以Apache基金会不受美国法律约束?

开源中国昨天发布的一篇文章《开源界也要注意&#xff0c;Apache 基金会与 GitHub 都受美国法律约束》引发了开源届乃至整个 IT 行业的热烈讨论&#xff0c;其中有个别声音认为文章的说法有误&#xff0c;甚至制造了恐慌。文中我们引用了两处内容&#xff0c;分别是 Apache 软件…

Loj#6485. LJJ 学二项式定理

Loj#6485. LJJ 学二项式定理&#xff08;单位根反演&#xff09; 题目描述 题目描述 题意&#xff1a;求下面式子的答案QAQ。 [∑((ni)⋅si⋅aimod4)]mod998244353[\sum(\tbinom{n}{i}\cdot s^i \cdot a_{i\;\;mod\;\;4}) ]\;mod\;\;998244353 [∑((in​)⋅si⋅aimod4​)]mod…

团体程序设计天梯赛-练习集

团体程序设计天梯赛-练习集 L2-001 紧急救援 (25 分) 知识点&#xff1a;最短路dij #include<bits/stdc.h> #define debug(x,y) printf("%s %d\n",x,y); typedef long long ll; using namespace std; inline int read(){int s0,w1;char chgetchar();while(…

C#中的Explicit和Implicit了解一下吧

今天在研究公司项目框架的时候看到了下面的用法&#xff0c;public static implicit operator JsonData(int data);。貌似很久没用过这种隐式转换的写法了&#xff0c;因此重新温习一下C#中转换相关的知识。作者&#xff1a;依乐祝原文地址&#xff1a;https://www.cnblogs.com…

bzoj#2125. 最短路

bzoj#2125. 最短路 题目描述 Description 给一个N个点M条边的连通无向图&#xff0c;满足每条边最多属于一个环&#xff0c;有Q组询问&#xff0c;每次询问两点之间的最短路径。 Input 输入的第一行包含三个整数&#xff0c;分别表示N和M和Q 下接M行&#xff0c;每行三个整数v…

Dapper的正确使用姿势

本文demo适用于MySQL优点高性能、易排查、易运维、灵活可控缺点和EF相比&#xff0c;手写sql当修改表结构不易发现bug。习惯了EF后再来使用Dapper&#xff0c;会很难适应那种没有了强类型的安全感。不过可以用单元测和心细来避免。问题&#xff1a;IDbConnection需不需要手动Op…

P4064 [JXOI2017]加法

P4064 [JXOI2017]加法 题意&#xff1a; 题解&#xff1a; 要求找最小值尽可能大&#xff0c;很明显二分&#xff0c;现在是如何判断二分出来的答案的正确性 对于一个二分出来的答案mid&#xff0c;要求对k个区间进行操作后&#xff0c;最小值大于mid&#xff0c;我们可以这…

[NewLife.XCode]百亿级性能

NewLife.XCode是一个有10多年历史的开源数据中间件&#xff0c;支持nfx/netcore&#xff0c;由新生命团队(2002~2019)开发完成并维护至今&#xff0c;以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析&#xff0c;蕴含多年开发经验于其中&#xff0c;代…

LuoguP4606 [SDOI2018]战略游戏

LuoguP4606 [SDOI2018]战略游戏 题目描述 题目描述 省选临近&#xff0c;放飞自我的小 QQ 无心刷题&#xff0c;于是怂恿小 CC 和他一起颓废&#xff0c;玩起了一款战略游戏。 这款战略游戏的地图由 nn 个城市以及 mm 条连接这些城市的双向道路构成&#xff0c;并且从任意一个…

Jozky 刷题目录

文章目录本目录参考OI-Wiki还未解决专区算法基础枚举模拟递归&分治贪心排序前缀和&差分二分倍增构造搜索DFS && BFS双向搜索启发式搜索A*迭代加深搜索IDA*回溯法Dancing Links搜索优化&#xff08;剪枝&#xff09;动态规划普通dp背包dp区间dpDAG上的dp树形dp状…

Web API 速率限制(一)

导读当您API有大量消费者或者请求量猛增到影响程序可用性的时候&#xff0c;您可能需要对API进行速率限制。所以对API进行限速的在于&#xff1a;在增加可靠性和可用性的同时来保护基础架构&#xff0c;你不希望某个恶意的API消费者或者差劲的API客户端开发者通过Dos攻击把你的…

训练赛合集

带 # 的为未补 带△的为未补完 带※的为补不动 比赛合集 牛客 △2021年度训练联盟热身训练赛第一场 Codeforces Codeforces Round #694 Div. 2 △Codeforces Round #695 (Div. 2) Codeforces Round #696 (Div. 2) △CodeCraft-21 and Codeforces Round #711 (Div. 2) Codef…

构建简单的微服务架构

前言 本篇仅作引导&#xff0c;内容较多&#xff0c;如果阅读不方便&#xff0c;可以使用电脑打开我们的文档官网进行阅读。如下图所示&#xff1a;文档官网地址&#xff1a;docs.xin-lai.com目录总体介绍微服务架构的好处 微服务架构的不足&#xff08;这个时候…

[AGC026D]Histogram Coloring

[AGC026D]Histogram Coloring 题目描述 题面 题意大概是有一个nnn列网格图&#xff0c;给定一个长度为nnn的序列hih_ihi​&#xff0c;第iii列只保留这一列最下面的hih_ihi​个格子。 现在需要给这些保留下来的格子染成红色或蓝色&#xff0c;满足每一个完整的222222正方形…

每日训练赛

文章目录说明2021.9.242021.9.252021.9.262021.9.272021.9.282021.9.292021.9.302021.10.12021.10.22021.10.32021.10.42021.10.52021.10.62021.10.72021.10.82021.10.92021.10.132021.10.152021.10.162021.10.212021.10.222021.10.242021.10.252021.10.262021.10.29说明 记录…

读《代码整洁之道》

什么是整洁代码代码的质量非常重要&#xff0c;糟糕的代码有可能会毁了一个公司。对于一个很注重代码质量的人来说呆在一个只关注交付而不关注代码质量的公司是很痛苦的。什么是整洁的代码&#xff0c;不同的人又不同的定义。我认为整洁的代码应该是符合所使用语言代码规范的&a…

[ZJOI2016]小星星

[ZJOI2016]小星星 题目描述 luogu题面 给定一个n个点的树和n个点m条边的无向图&#xff0c;求将树嵌入图的方案数。 其中 n≤17,m≤n∗(n−1)2n \leq 17,m \leq \frac{n*(n-1)}{2}n≤17,m≤2n∗(n−1)​。 Solution 点数很少&#xff0c;考虑状压DP。 令f[i][j][k]f[i][j]…

在 DotNetty 中实现同步请求

一、背景DotNetty 本身是一个优秀的网络通讯框架&#xff0c;不过它是基于异步事件驱动来处理另一端的响应&#xff0c;需要在单独的 Handler 去处理相应的返回结果。而在我们的实际使用当中&#xff0c;尤其是 客户端程序 基本都是 请求-响应 模型&#xff0c;在发送了数据时候…

BZOJ#3252. 攻略

BZOJ#3252. 攻略 题目描述 Solution 有一个显然的 贪心&#xff0c;每次选取一个到根的点权和最大的点xxx&#xff0c;将答案加上xxx到根的路径的点权和&#xff0c;并将xxx到根的路径上的点的权值清零。 可以使用DFS序线段树维护。 但完全没有这么麻烦。 容易发现每一次选…

ASP.NET Core 中间件

1.前言中间件&#xff08;middleware&#xff09;是一种装配到应用管道以处理请求和响应的组件。每个组件&#xff1a;●可选择是否将请求传递到管道中的下一个组件。●可在管道中的下一个组件前后执行工作。请求委托&#xff08;request delegates&#xff09;用于建立请求管道…