React, clase și cârlige

React, clase și cârlige

După varii prostioare întâmplate în Vue (e.g. copiat chestii fix din manual care nu compilau) am decis să migrez pe React: comunitate ceva mai mare, am puțin mai multă experiență decât cu Vue (nu exagerez când spun puțin mai multă). În fine, React să fie.

Mie îmi place OOP, mi se pare că ajută mai mult la exprimare în cod – cel puțin pentru ce fac eu – deci, normal, am ales react classic. Arăt unui prieten: „hă hă, nu fi prost, lasă clasele, că sunt atât de 2019, folosește hooks”.

Nu-i bai, folosesc, că-i la modă și că sunt atât de păcătoase clasele și rele și câh încât nu știu cum se mai suportă ăla care le-a adus în JS!

Hooks solve a wide variety of seemingly unconnected problems in React that we’ve encountered over five years of writing and maintaining tens of thousands of components. Whether you’re learning React, use it daily, or even prefer a different library with a similar component model, you might recognize some of these problems.

manual

Nu sunt foarte sigur ce probleme rezolvă cârligele sufletului, dar știu sigur că apare o problemă: mărimea componentelor.

Din punctul meu de vedere, SRP se aplică de la cel mai mic element, până cât mai aproape de vârful ierarhiei: variabilă, metodă, clasă, modul. Iar OOP ajută bine de tot la aplicarea SRP: metode scurte care fac un singur lucru și care au un singur motiv să se schimbe.

Eh, reacționiștii ăștia au dus lucrurile un pic prea departe: ai o funcție care încapsulează alte definiții de funcții. Adică un fel de clasă doar că nu-i clasă.

M-am obișnuit repede cu modul ăsta de a scrie componentele, dar… mi se pare… ciudat.

Adaugă un comentariurăspuns pentru

Poți adăuga bucăți de cod folosind [code]codul tău aici[/code], [js][/js], [php][/php] etc.

Link-urile în context sunt binevenite. Comentariile fără nume/email valid sunt șterse.
PS: Comentariul NU este editabil.

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Site-ul blog.iamntz.com utilizează cookie-uri. Continuarea navigării presupune acceptarea lor. Mai multe informații.

windows apple dropbox facebook twitter