Asking around at the user conference, I also heard various things, like TypeScript, Node.js, JSX, & Sass. Regarding JSX, I got conflicting answers about whether knowing the underlying React technology is necessary.
This is a great question, and I hope to see some others comment here (might also be a nice question to pose on The Spatial Community slack channel).
My 2 cents:
Since we still support IE11, we have some specific requirements regarding the version of ECMAScript that we use in our samples.
Hope this helps!
Specific to experience builder you will want to focus on the React library. React is what experience builder is built on. I believe that experience builder has a minimum requirement of greater than IE11 (so modern browsers) so that means ecma script 6 or greater.
Robert Scheitlin, GISP wrote:
React is what experience builder is built on.
I've created a sample web application with all 3 frameworks to test the waters and this is what I found:
React: Generally OK to develop with. It's quick to learn but has its downfalls with data manipulation. If you need a significant number of form controls and inputs (ie. if you are using JS for data-manipulation applications) then React is not the way to go. React requires onChange events for every input control to update the state of the controller which loses a huge amount of time if you have a lot of data inputs. But overall, not a bad choice if you want to get started, just be weary that passing variables around can be a bit tricky.
Vue: Fairly good. All around pretty decent to use. It is a sort of combincation of React and Angular but doesn't enforce typescript. It has automatic data-binding and JS objects get updated the moment a form input is changed. It's not too hard to get started and works well with Esri applications. Some downfalls with nested components and passing parameters but I've found it is nice to work with.
In addition to choice of framework, you should probably know the following concepts: ES6+, Webpack, Node.js, npm
I agree with Robert ES6+ is important. Look into arrow functions and let/const vs var. Something else to mention would be using forEach or map to loop through things such as graphics will be very useful. The API relies heavily on promises, so that is important to understand as well.
And has been mentioned, if you are interested in building ExB widgets, you will need to learn some React basics. I don't have much specific guides for React, but there are a ton of resources out there. This post has some nice summaries and links.
I've had the opportunity to do some ExB widget dev and you should learn how React Providers work and basic state updates and management.
I believe that Getting Started – React can be the good starting point.
With typescript react, there is starter template in github by microsoft to start with.