Using React with an existing application with JSX
We are planning to switch new technologies like react for my CMS project which is under development for 10 years.
Until now everything was simple and plain on the front end.
First include jquery.js then if necessary include the components and third party scripts, then code and dance with the DOM.
But now while trying to jump into a higher level of technology and different approach, things can easily get very complicated for me.
After spending more than 10 hours with React documents and tutorials I have a very good understanding about what it is and how it works.
But I realized that I am very unfamiliar with some popular concepts. I never used node.js, never used npm, babel, webpack, and may other many "new" things I have seen every where. I am face to face with these tools because of React and I am convinced that these are the inevitable for modern front end development.
Now the question
Our CMS runs on PHP and depends on MooTools heavily at the front end. Instead of a complete rewrite of a 10 years old CMS I just want to try new technologies partially for some cases. Decided to starting with React.
For the case I want to integrate ag-Grid to React also.
What I did not understand is that how to bring all these tools together.
I won't be able to use the simply include js way of react because of ag-Grid.
In the examples the code written has some JSX. Which means that we write JSX and run it translated for the browser to test if it is ok.
- Each time before testing do I need to translate these files?
- And more over if the files are translated does debugging become very
complicated? - Can babel make it on the run time? If yes is it a good practice.
- There are lots of file in the node_modules folder. Which of them
should I include for production?
All sources on the net are very theoretical and assumes a knowledge. Need some guidance for best practices.
There are lots of questions and not a single step by step guide from beginning to production.
javascript node.js reactjs babeljs ag-grid-react
add a comment |
We are planning to switch new technologies like react for my CMS project which is under development for 10 years.
Until now everything was simple and plain on the front end.
First include jquery.js then if necessary include the components and third party scripts, then code and dance with the DOM.
But now while trying to jump into a higher level of technology and different approach, things can easily get very complicated for me.
After spending more than 10 hours with React documents and tutorials I have a very good understanding about what it is and how it works.
But I realized that I am very unfamiliar with some popular concepts. I never used node.js, never used npm, babel, webpack, and may other many "new" things I have seen every where. I am face to face with these tools because of React and I am convinced that these are the inevitable for modern front end development.
Now the question
Our CMS runs on PHP and depends on MooTools heavily at the front end. Instead of a complete rewrite of a 10 years old CMS I just want to try new technologies partially for some cases. Decided to starting with React.
For the case I want to integrate ag-Grid to React also.
What I did not understand is that how to bring all these tools together.
I won't be able to use the simply include js way of react because of ag-Grid.
In the examples the code written has some JSX. Which means that we write JSX and run it translated for the browser to test if it is ok.
- Each time before testing do I need to translate these files?
- And more over if the files are translated does debugging become very
complicated? - Can babel make it on the run time? If yes is it a good practice.
- There are lots of file in the node_modules folder. Which of them
should I include for production?
All sources on the net are very theoretical and assumes a knowledge. Need some guidance for best practices.
There are lots of questions and not a single step by step guide from beginning to production.
javascript node.js reactjs babeljs ag-grid-react
You may not use JSX syntax at all and avoid the transpilation step altogether, React isn't tied to JSX: it's just a library that establishes unidirectional data flow and renders raw data into DOM in an efficient way. I think you are at the point where you still need to do more research and decide if you really need to migrate to React, quite honestly.
– rm-
Nov 10 at 14:12
There are lots of questions and not a single step by step guide from beginning to production - step by step tutorials are out of scope of SO, There's certain learning curve with React tooling. It's hard to embrace modern JS workflow at once if you don't have enough experience with necessary things (Node, Babel, Webpack).
– estus
Nov 10 at 14:35
Actualy we do not realy migrate to React now but I see popular tools like jquery wont be able to meet modern needs in the near future. Our mostly used library MooTools came at the end of it's life cycle. I dont think jquery will last too long because ES is able to replace it. A complete migration of our CMS is not possible today. But we want to see how things go with React and try it in a small Module of CMS. That is the idea. I feel integrating React is not a good idea instead of starting from scratch. What do you think?
– Zortext
Nov 11 at 9:21
add a comment |
We are planning to switch new technologies like react for my CMS project which is under development for 10 years.
Until now everything was simple and plain on the front end.
First include jquery.js then if necessary include the components and third party scripts, then code and dance with the DOM.
But now while trying to jump into a higher level of technology and different approach, things can easily get very complicated for me.
After spending more than 10 hours with React documents and tutorials I have a very good understanding about what it is and how it works.
But I realized that I am very unfamiliar with some popular concepts. I never used node.js, never used npm, babel, webpack, and may other many "new" things I have seen every where. I am face to face with these tools because of React and I am convinced that these are the inevitable for modern front end development.
Now the question
Our CMS runs on PHP and depends on MooTools heavily at the front end. Instead of a complete rewrite of a 10 years old CMS I just want to try new technologies partially for some cases. Decided to starting with React.
For the case I want to integrate ag-Grid to React also.
What I did not understand is that how to bring all these tools together.
I won't be able to use the simply include js way of react because of ag-Grid.
In the examples the code written has some JSX. Which means that we write JSX and run it translated for the browser to test if it is ok.
- Each time before testing do I need to translate these files?
- And more over if the files are translated does debugging become very
complicated? - Can babel make it on the run time? If yes is it a good practice.
- There are lots of file in the node_modules folder. Which of them
should I include for production?
All sources on the net are very theoretical and assumes a knowledge. Need some guidance for best practices.
There are lots of questions and not a single step by step guide from beginning to production.
javascript node.js reactjs babeljs ag-grid-react
We are planning to switch new technologies like react for my CMS project which is under development for 10 years.
Until now everything was simple and plain on the front end.
First include jquery.js then if necessary include the components and third party scripts, then code and dance with the DOM.
But now while trying to jump into a higher level of technology and different approach, things can easily get very complicated for me.
After spending more than 10 hours with React documents and tutorials I have a very good understanding about what it is and how it works.
But I realized that I am very unfamiliar with some popular concepts. I never used node.js, never used npm, babel, webpack, and may other many "new" things I have seen every where. I am face to face with these tools because of React and I am convinced that these are the inevitable for modern front end development.
Now the question
Our CMS runs on PHP and depends on MooTools heavily at the front end. Instead of a complete rewrite of a 10 years old CMS I just want to try new technologies partially for some cases. Decided to starting with React.
For the case I want to integrate ag-Grid to React also.
What I did not understand is that how to bring all these tools together.
I won't be able to use the simply include js way of react because of ag-Grid.
In the examples the code written has some JSX. Which means that we write JSX and run it translated for the browser to test if it is ok.
- Each time before testing do I need to translate these files?
- And more over if the files are translated does debugging become very
complicated? - Can babel make it on the run time? If yes is it a good practice.
- There are lots of file in the node_modules folder. Which of them
should I include for production?
All sources on the net are very theoretical and assumes a knowledge. Need some guidance for best practices.
There are lots of questions and not a single step by step guide from beginning to production.
javascript node.js reactjs babeljs ag-grid-react
javascript node.js reactjs babeljs ag-grid-react
asked Nov 10 at 13:34
Zortext
319
319
You may not use JSX syntax at all and avoid the transpilation step altogether, React isn't tied to JSX: it's just a library that establishes unidirectional data flow and renders raw data into DOM in an efficient way. I think you are at the point where you still need to do more research and decide if you really need to migrate to React, quite honestly.
– rm-
Nov 10 at 14:12
There are lots of questions and not a single step by step guide from beginning to production - step by step tutorials are out of scope of SO, There's certain learning curve with React tooling. It's hard to embrace modern JS workflow at once if you don't have enough experience with necessary things (Node, Babel, Webpack).
– estus
Nov 10 at 14:35
Actualy we do not realy migrate to React now but I see popular tools like jquery wont be able to meet modern needs in the near future. Our mostly used library MooTools came at the end of it's life cycle. I dont think jquery will last too long because ES is able to replace it. A complete migration of our CMS is not possible today. But we want to see how things go with React and try it in a small Module of CMS. That is the idea. I feel integrating React is not a good idea instead of starting from scratch. What do you think?
– Zortext
Nov 11 at 9:21
add a comment |
You may not use JSX syntax at all and avoid the transpilation step altogether, React isn't tied to JSX: it's just a library that establishes unidirectional data flow and renders raw data into DOM in an efficient way. I think you are at the point where you still need to do more research and decide if you really need to migrate to React, quite honestly.
– rm-
Nov 10 at 14:12
There are lots of questions and not a single step by step guide from beginning to production - step by step tutorials are out of scope of SO, There's certain learning curve with React tooling. It's hard to embrace modern JS workflow at once if you don't have enough experience with necessary things (Node, Babel, Webpack).
– estus
Nov 10 at 14:35
Actualy we do not realy migrate to React now but I see popular tools like jquery wont be able to meet modern needs in the near future. Our mostly used library MooTools came at the end of it's life cycle. I dont think jquery will last too long because ES is able to replace it. A complete migration of our CMS is not possible today. But we want to see how things go with React and try it in a small Module of CMS. That is the idea. I feel integrating React is not a good idea instead of starting from scratch. What do you think?
– Zortext
Nov 11 at 9:21
You may not use JSX syntax at all and avoid the transpilation step altogether, React isn't tied to JSX: it's just a library that establishes unidirectional data flow and renders raw data into DOM in an efficient way. I think you are at the point where you still need to do more research and decide if you really need to migrate to React, quite honestly.
– rm-
Nov 10 at 14:12
You may not use JSX syntax at all and avoid the transpilation step altogether, React isn't tied to JSX: it's just a library that establishes unidirectional data flow and renders raw data into DOM in an efficient way. I think you are at the point where you still need to do more research and decide if you really need to migrate to React, quite honestly.
– rm-
Nov 10 at 14:12
There are lots of questions and not a single step by step guide from beginning to production - step by step tutorials are out of scope of SO, There's certain learning curve with React tooling. It's hard to embrace modern JS workflow at once if you don't have enough experience with necessary things (Node, Babel, Webpack).
– estus
Nov 10 at 14:35
There are lots of questions and not a single step by step guide from beginning to production - step by step tutorials are out of scope of SO, There's certain learning curve with React tooling. It's hard to embrace modern JS workflow at once if you don't have enough experience with necessary things (Node, Babel, Webpack).
– estus
Nov 10 at 14:35
Actualy we do not realy migrate to React now but I see popular tools like jquery wont be able to meet modern needs in the near future. Our mostly used library MooTools came at the end of it's life cycle. I dont think jquery will last too long because ES is able to replace it. A complete migration of our CMS is not possible today. But we want to see how things go with React and try it in a small Module of CMS. That is the idea. I feel integrating React is not a good idea instead of starting from scratch. What do you think?
– Zortext
Nov 11 at 9:21
Actualy we do not realy migrate to React now but I see popular tools like jquery wont be able to meet modern needs in the near future. Our mostly used library MooTools came at the end of it's life cycle. I dont think jquery will last too long because ES is able to replace it. A complete migration of our CMS is not possible today. But we want to see how things go with React and try it in a small Module of CMS. That is the idea. I feel integrating React is not a good idea instead of starting from scratch. What do you think?
– Zortext
Nov 11 at 9:21
add a comment |
1 Answer
1
active
oldest
votes
JSX is an extension over spec-compliant JavaScript. It is syntactic sugar for React.createElement(...)
and is optional in React development.
React can be written in plain ES5:
React.createElement("div", { foo: "foo" });
Instead of JSX:
<div foo="foo" />
Or with helper functions like h
that achieve the same goal, e.g. react-hyperscript
.
The fact that there is PHP backend application doesn't prevent from developing React frontend application with JSX. This may require to configure React project to not use built-in Express web server and build client-side application to custom location, i.e. existing app's public folder. In case create-react-app
is used, this may require to eject the project).
Each time before testing do I need to translate these files?
They should be transpiled to plain JavaScript (ES5 if it targets older browsers). They can be translated on every change in source files when client-side project runs in watch mode (conventionally npm start
).
And more over if the files are translated does debugging become very
complicated?
This is what source maps are for.
Can babel make it on the run time? If yes is it a good practice.
It's possible to use Babel at runtime, and this isn't a good practice, even in development environment.
There are lots of file in the node_modules folder. Which of them
should I include for production?
The contents of node_modules doesn't matter. Almost all of them are development dependencies that are needed to build client-side app. This is the task for a bundler, which is Webpack in create-react-app
template. It builds project dependencies to plain JS in dist
folder.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53239490%2fusing-react-with-an-existing-application-with-jsx%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
JSX is an extension over spec-compliant JavaScript. It is syntactic sugar for React.createElement(...)
and is optional in React development.
React can be written in plain ES5:
React.createElement("div", { foo: "foo" });
Instead of JSX:
<div foo="foo" />
Or with helper functions like h
that achieve the same goal, e.g. react-hyperscript
.
The fact that there is PHP backend application doesn't prevent from developing React frontend application with JSX. This may require to configure React project to not use built-in Express web server and build client-side application to custom location, i.e. existing app's public folder. In case create-react-app
is used, this may require to eject the project).
Each time before testing do I need to translate these files?
They should be transpiled to plain JavaScript (ES5 if it targets older browsers). They can be translated on every change in source files when client-side project runs in watch mode (conventionally npm start
).
And more over if the files are translated does debugging become very
complicated?
This is what source maps are for.
Can babel make it on the run time? If yes is it a good practice.
It's possible to use Babel at runtime, and this isn't a good practice, even in development environment.
There are lots of file in the node_modules folder. Which of them
should I include for production?
The contents of node_modules doesn't matter. Almost all of them are development dependencies that are needed to build client-side app. This is the task for a bundler, which is Webpack in create-react-app
template. It builds project dependencies to plain JS in dist
folder.
add a comment |
JSX is an extension over spec-compliant JavaScript. It is syntactic sugar for React.createElement(...)
and is optional in React development.
React can be written in plain ES5:
React.createElement("div", { foo: "foo" });
Instead of JSX:
<div foo="foo" />
Or with helper functions like h
that achieve the same goal, e.g. react-hyperscript
.
The fact that there is PHP backend application doesn't prevent from developing React frontend application with JSX. This may require to configure React project to not use built-in Express web server and build client-side application to custom location, i.e. existing app's public folder. In case create-react-app
is used, this may require to eject the project).
Each time before testing do I need to translate these files?
They should be transpiled to plain JavaScript (ES5 if it targets older browsers). They can be translated on every change in source files when client-side project runs in watch mode (conventionally npm start
).
And more over if the files are translated does debugging become very
complicated?
This is what source maps are for.
Can babel make it on the run time? If yes is it a good practice.
It's possible to use Babel at runtime, and this isn't a good practice, even in development environment.
There are lots of file in the node_modules folder. Which of them
should I include for production?
The contents of node_modules doesn't matter. Almost all of them are development dependencies that are needed to build client-side app. This is the task for a bundler, which is Webpack in create-react-app
template. It builds project dependencies to plain JS in dist
folder.
add a comment |
JSX is an extension over spec-compliant JavaScript. It is syntactic sugar for React.createElement(...)
and is optional in React development.
React can be written in plain ES5:
React.createElement("div", { foo: "foo" });
Instead of JSX:
<div foo="foo" />
Or with helper functions like h
that achieve the same goal, e.g. react-hyperscript
.
The fact that there is PHP backend application doesn't prevent from developing React frontend application with JSX. This may require to configure React project to not use built-in Express web server and build client-side application to custom location, i.e. existing app's public folder. In case create-react-app
is used, this may require to eject the project).
Each time before testing do I need to translate these files?
They should be transpiled to plain JavaScript (ES5 if it targets older browsers). They can be translated on every change in source files when client-side project runs in watch mode (conventionally npm start
).
And more over if the files are translated does debugging become very
complicated?
This is what source maps are for.
Can babel make it on the run time? If yes is it a good practice.
It's possible to use Babel at runtime, and this isn't a good practice, even in development environment.
There are lots of file in the node_modules folder. Which of them
should I include for production?
The contents of node_modules doesn't matter. Almost all of them are development dependencies that are needed to build client-side app. This is the task for a bundler, which is Webpack in create-react-app
template. It builds project dependencies to plain JS in dist
folder.
JSX is an extension over spec-compliant JavaScript. It is syntactic sugar for React.createElement(...)
and is optional in React development.
React can be written in plain ES5:
React.createElement("div", { foo: "foo" });
Instead of JSX:
<div foo="foo" />
Or with helper functions like h
that achieve the same goal, e.g. react-hyperscript
.
The fact that there is PHP backend application doesn't prevent from developing React frontend application with JSX. This may require to configure React project to not use built-in Express web server and build client-side application to custom location, i.e. existing app's public folder. In case create-react-app
is used, this may require to eject the project).
Each time before testing do I need to translate these files?
They should be transpiled to plain JavaScript (ES5 if it targets older browsers). They can be translated on every change in source files when client-side project runs in watch mode (conventionally npm start
).
And more over if the files are translated does debugging become very
complicated?
This is what source maps are for.
Can babel make it on the run time? If yes is it a good practice.
It's possible to use Babel at runtime, and this isn't a good practice, even in development environment.
There are lots of file in the node_modules folder. Which of them
should I include for production?
The contents of node_modules doesn't matter. Almost all of them are development dependencies that are needed to build client-side app. This is the task for a bundler, which is Webpack in create-react-app
template. It builds project dependencies to plain JS in dist
folder.
edited Nov 10 at 14:38
answered Nov 10 at 14:30
estus
67k2198212
67k2198212
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53239490%2fusing-react-with-an-existing-application-with-jsx%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You may not use JSX syntax at all and avoid the transpilation step altogether, React isn't tied to JSX: it's just a library that establishes unidirectional data flow and renders raw data into DOM in an efficient way. I think you are at the point where you still need to do more research and decide if you really need to migrate to React, quite honestly.
– rm-
Nov 10 at 14:12
There are lots of questions and not a single step by step guide from beginning to production - step by step tutorials are out of scope of SO, There's certain learning curve with React tooling. It's hard to embrace modern JS workflow at once if you don't have enough experience with necessary things (Node, Babel, Webpack).
– estus
Nov 10 at 14:35
Actualy we do not realy migrate to React now but I see popular tools like jquery wont be able to meet modern needs in the near future. Our mostly used library MooTools came at the end of it's life cycle. I dont think jquery will last too long because ES is able to replace it. A complete migration of our CMS is not possible today. But we want to see how things go with React and try it in a small Module of CMS. That is the idea. I feel integrating React is not a good idea instead of starting from scratch. What do you think?
– Zortext
Nov 11 at 9:21