4 ms·
This is unacceptably huge compared to the similarly named Vanilla JS. http://vanilla-js.com/ http://vanilla-js.com/
by theandrewbailey 3y ago
This is unacceptably huge compared to the similarly named Vanilla JS.
http://vanilla-js.com/ http://vanilla-js.com/
- helsinkiandrew 3y ago> This is unacceptably huge compared to the similarly named Vanilla JS. It took me a minute to get it. 0 bytes uncompressed, 25 bytes gzipped
- wsc981 3y agoMagnitudes ...
- ping-monkey 3y agoTry to replicate a sample app made by VanJS with Vanilla JS and check the difference
- qayxc 3y agochallenge accepted (app #2, since #1 is just static), BEHOLD: <script> const Counter = () => { let counter = 0; const updCounter = (delta) => { counter += delta; document.getElementById('count').innerText = `♥ ${counter}`; }; document.getElementById('up').addEventListener('click', () => updCounter(1)); document.getElementById('down').addEventListener('click', () => updCounter(-1)); updCounter(0); }; Counter(); </script> <span id="count"></span> <button id="up">*thumbs-up*</button> <button id="down">*thumbs-down*</button> 15 LoC vs 7 LoC, zero dependencies vs. 0.9kB gzipped or 2.7kB minified. Additional learning curve: 0h vs 1h (allegedly). Honestly, I am biased and think Vanilla JS wins :D
- flying-pig 3y agoThe fact that you have to manually maintain the binding between states and UI elements and propagate state changes to UI elements is exactly the thing offered by VanJS, or other popular reactive frameworks (despite with a much larger bundle size)
- qayxc 3y agoSure thing. But it's also one of those things that comes back to bite you when you least expect it: https://vanjs.org/advanced#why-not-dom-valued-states https://vanjs.org/advanced#why-not-dom-valued-states
- flying-pig 3y agoI don't get you. Could you elaborate?
- qayxc 3y agoIn the example I linked, the VanJS state cannot contain an element reference. This would lead to unexpected results. So you have to be careful with state management, regardless of whether it's automated or not. There are similar pitfalls, including performance issues, with any state management system, hence dedicated state management solutions like Redux exist to address this. The core of the argument is that complexity sometimes cannot be avoided. You can quickly wind up with moving this complexity elsewhere, e.g. by pulling in an additional library dependency. This results in having to learn, master and manage additional dependencies. Whether that's fundamentally better than the explicit and straight forward way depends on the scope of the project and its specific requirements. There's no silver bullet in any case and pros and cons with every approach.
- deleted 3y ago[deleted]