| 
	
	
		
		
		
		
		 React, взгляд со стороны. (не более чем личное мнение). Итак React или Vue?  
Rect изучаю ну может быть с неделю, но мнение о нем уже составлено.  
Итак: 
возможности  фрейморков, здесь говорить не о чем. В принципе все что можно сделать в одном, можно сделать в другом.  
Очень важный параметр как скорость и тяжеловесность для браузера. Здесь тоже особенно говорить не о чем.  
В принципе результаты сопоставимы. Очень важный момент, который бы хотелось отметить в отношении React, - он спроектирован и реализован очень профессионально.  
"Голубая кровь" в нем так и прет наружу. Уж извините за сравнение. В нем вам никогда не придется возвращаясь к задаче, "вспоминать" как все было сделано.  
То что часто пишут - "разбираться в чужом коде", в React с этим дело иметь не придется.  
Если вы любите программировать, и считаете что ковыряние компонент js это ваше любимое занятие - vue. Если вы считаете что визуализация задачи -  
это ремесло (сделал, забыл идем дальше...) - это React.  
Есть у меня претензии (шероховатости) к React? Ну конечно - есть.  
И несмотря на это Vue - это сделано в китае, React - это facebook. Вот просто вынужден признать, - качество! Дальше думайте сами. 
Теперь также хочу высказать свое понимание стратегии создания компонентов в React.  
Первое что нужно понимать - никто за вашим кодом не следит ( типа оптимальность, если не изменилось, то не перерисовывается... - хрень ).  
Ну может при переходе от виртуальной DOM  к браузерой что то подобное и есть, но я сомневаюсь в этом. Исхожу теперь из гипотезы: 
Есть setState - есть render.  Независимо что там у вас setState, render в полном объеме. 
Поэтому если создается приложение (как правило - система меню, отдельные блоки новости,строки состояний и прочее) в котором есть основной App 
а все остальное как компоненты внутри этого App, то это неправильно. С точки зрения производительности необходимо разделять компоненты (делать из несвязными)  
и разделение такое осуществляется по экранным блокам выводимой информации. Например если есть меню - то меню это отдельный компонент, в нем вложены кнопки,  
ссылки, меню других уровней. Но этот компонент меню не вложен ни в какой другой компонент. т.е. у него нет родителя. Аналогично все остальные блоки приложения. 
Т.е. под рекомендацией React разделять компоненты (дробить) я понимаю именно это. При таком подходе у вас никогда не возникнет вопрос производительности. 
Добиться этого не сложно. Остается вопрос связи таких "независимых" компонентов между собой. Это тот вопрос, который я поднимал в предыдущем топике. И у него есть решения.  
 
Теперь, как был все-таки решен заданный мной вопрос. memo в данном случае не подходит. Это решение суть - то же самое что shouldComponentUpdate.  
Итак данный пример чудненько решается если перенести обработку ArrowUp ArrowDown в компонент row. получение события обеспечивает фокусировка.  
При получении события только одна строка (ативная) перерисовывается (становится неактивной) и передает родительскому компоненту сообщение о перерисовке. 
Родительский компонент, фиксирует у себя номер новой активной строки и обращается в дочернему классу (используя дочерний this) этой новой строки с ненавязчивой просьбой перерисоваться. ))) 
Результат круче чем в Vue.  
В любом случае рекомендую всякие раз создавая компоненту закладывать shouldComponentUpdate. Без этого в React не обойтись. дело утопающих дело рук самих утопающих. 
Всем спасибо за терпение 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 |