наследуюсь от React.Component, затем использую метод render(). Не могу понять, откуда render() знает что ему делать? Разве мой класс не должен перезаписывать или создавать этот метод даже если его нету в родительском.
Если метод не переопределяют и он используется - значит от самодостаточный
а как это понимать? самодостаточный? я просто недавно начал изучать реакт
Стоит больше углубится в нативный джс и ооп (+ функциональное можно)
просто в нативном js если родительский класс имеет например метод render и я переопределяю его в наследуемом то выполняется то что в наследуемом
например: class Component { render() { console.log("Output from Component class") } } class App extends Component { render() { console.log("Output from App class") } } const app = new App(); app.render()
JS и ООП ? не издевательство? Понимаю, если бэк - php..
Ну так если не переопределяешь то в родителе Вот и вся логика Рендеру не надо знать шо там у тебя
так и есть, только в React.Component твой метод render() используется, вот и все
Издевательство не изучать джс когда есть новомодные фреймворки и библиотеки
render () { <div className="App"> </div>... } а так он разве не переопределяется?
да переопределяется, просто в React.Component скорее всего есть метод, который юзает твой рендер, который ты определил у себя в классе
я впервые слышу, что у JS ООП) Я же ушел в бэк..
Лол, вот и сюрприз)
вау, а это магия такая?)
у них ведь это на уровне тайпскрипта происходит или в нативном js всё проворачивается?
тс компилится в js
Тайпскрипт никакой магии не делает, тс => джс
а как тогда он юзает render который у меня в классе? просто впервые слышу чтобы родительский класс мог использовать метод дочернего
хорошо, твой класс юзает методы от React.Component, если так понятнее)
только вот при использовании разве не происходит переопределение?
дак оно и должно происходить)
ну окей, есть метод render() в React.Component я беру этот метод и переопределяю так по идее этот метод полностью перезаписывается в моём классе и теряет свою функциональность, не?
Теряет, но она ему и не нужна
class Component { something() { console.log('this is render result: ' + render()); } render() {} } class Abc extends Component { render() { return '<div>hello world</div>'; } } // где то под капотом реакта const abc = new Abc(); abc.something(); Как думаешь что выведет?))
ааа дошло, выведит this is result: <div>Hello world!</div>
Спасибо большое, дошло
И еще вопрос, значит под капотом реакта используется наш класс с рендером?
Ну я не реактовик, и сходу даже не вспомнил что за метод такой render() у реакта Но предполагаю что все так
ясно, скорее получает в index.js куда импортируется мой класс. Спасибо еще раз.
Обсуждают сегодня