* Add initial test structure and some tests for Window * Start on rewriting registerComponent * Add View support * Add flexbox support, still need to test more * Add styling and better props management * Add nested text support * Fix text measurement and qt hogging layout styles * Font size must be in px, so convert if it isn't * Add stylesheet * Various changes, start adding tests * Try out travis CI * Remove xwd package * Install qt5 * Install correct moc * Add g++ 5 * Add xwd and imagemagick * Yoga layout doesn't support v12 right now * Add touchablewithoutfeedback * Add opacity. Need to investigate seg fault * Fix build errors, unsupport trusty * Force xenial version * Add touchablehighlight. Start button * Add support for image require * Start on image * Add image resizing and TextInput * Fix button view * Quit loop when all windows closed * Fix require not working with jest * Fix quit deleting still in use pointers * Disable caching * Depend on stable node-qt-napi * Copy docs, start examples * Many bug fixes, get cat example to work * Fix percent issue and start more documentation * Start docs * Finish docs * Fix App appendChild with comments * Abstract QT bindings * Add calculator example; try to get devtools working * Update react-devtools * Add hot reloading support * Add hot reloading to examples, fix reloading bugs * Update documentation on v2 * Add more examples to v2 changes * Change readme for v2 * Remove packaging until it works * Add prepack instead * Use node-qt-napi up * 2.0.1 * Convert everything to typescript * Add note on TS * Update readme with new images * Add comparison to others in docs * Add packaging instructions * Fix windows packaging * Create FUNDING.yml * Update v2_changes.md * Create LICENSE * Add wx backend option * Add more wx components * Add wx backend notes * Add note on mac wxwidgets libuv bug * Add note on Macs with libuv bug * Use npx by default * Bump version for wx backend * V2 small code improvements (#240) * slightly improved import * better type defs * merged append and insert as they pretty same * Run prettier * Add issue templates (#241) * About page typo (#216) * Update quickstart.md (#223) * Update README.md (#229) * Create FUNDING.yml * Add issue templates * Update README.md Co-authored-by: Yevhen Hraivoronskyi <evhenious@gmail.com>
1.6 KiB
Hot Reloading
Proton Native now has support for hot reloading right out of the box! This allows you to edit code and see the results appear instantly, without modifying any of the state.
Usage
All of this is baked into your Proton Native application when it is created with the
proton-native-cli.
npm run dev # Starts the server and your application with it
How it works
Knowing how hot reloading works can be useful if you want to use it in particularly advanced situations.
Hot reloading revolves around webpack. Every Proton Native application is shipped
with a default webpack.config.js that is suitable for most applications. It will package everything into
one JS file in the dist/ directory, and watch for any changes.
Changes are communicated to your index.js file. This file renders your component,
accepts any update notifications, and if so, pulls the latest version, and forces
an update down the entire React tree. Using react-proxy, your state stays the same
while all necessary components are updated. react-proxy is baked into Proton Native,
and is only used in development mode (ie. setting NODE_ENV to production disables
hot reloading).
Gotchas
- Don't register your component in
app.js, only inindex.js - Make sure your root component is the default export in
app.js - This does not currently work with Redux (any help is appreciated)
- Does not work with class instance properties (due to
react-proxy)- To get around this, instead create a function which returns your value. More details can be seen inside the Calculator example.