Вы пишите весь код в один файл или предпочитаете делить на многие?
Файл меньшего размера читать удобнее.
Вы так говорите, будто это не преимущество
и не мешается там
В вашем примере какую функцию несет index.ts?
styled-components в этом случае вообще можно выкинуть из проекта.
Но это ценой сваливания в одну кучу разных сущностей
которым не нужно находиться вместе.
И тянет новую зависимость в проект.
Такая себе лаконичность.
ComponentName.ts
ComponentName/
View.ts
styles.ts
index.ts
ТС пишет стили прамо в компонентах.
<script>
window.__DATA = {
domainNames: <?php echo json_encode($domains_array); ?>
};
</script>
var domainNames = window.__DATA.domainNames;
в том-то и дело, что к коду (логике) что-то большее, чем название состояний (читай css-классов) отношения не имеет и лишь затрудняет чтение кода.
Разделение логики и представления - это опыт индустрии за 20+ лет.
<script>
window.__DATA = {
domainNames: /* тут передается массив в виде строки */
};
</script>
var domainsList = [
'https://domain1.com',
'https://domain2.com'
];
// имена хоста можно и сразу в массиве указать без http:// https:// ,
// если не собираетесь с протоколом использовать
var hostNamesList = domainsList.map(function(url) {
return getDomain(url);
});
function getDomain(url) {
return url.replace('http://','').replace('https://','').split('/')[0];
}
function isExternal(url) {
return hostNamesList.indexOf(getDomain(url)) === -1;
}
if (isExternal($parent.attr('href')) {
// do something
}
Меня интересует только PSD
{
"compilerOptions": {
"lib": ["es6", "es2017", "dom"]
}
}
arr: string
выглядит абсурдно. Я думаю, даже не стоит озвучивать почему.console.log(String([12,13]).includes(1)) // true
console.log(String([12, 13]).indexOf(1)); // 0
Это не имеет значения. Локальные стили без компонента не несут особого смысла. И их можно хранить в директории с файлами компонента, а можно ограничиться одним файлом. Сути это не меняет.
С другой стороны получаем меньше обращений к файловому древу, меньше отрытых вкладок, меньше переходов межу вкладками, более простую структуру проекта.
Риск не будет выше. Соглашусь, разве, что при условии, что два программиста решат внести множество изменений по всему файлу, то конфликт может быть более жутким.
Я подразумевал комьюнити React, React Native и Vue.
Тут логическая ошибка в рассуждении. "разделение концепций" не имеет прямого отношения к файловой структуре.
Банда четырех пишет о другом. Не надо воспринимать концепцию разделения представления и содержания буквально как "Концепция разделения представления и содержания по разным файлам."
Я тут неправильно выразился. Имел под масштабированием я подразумевал разрастание какой-либо фичи.
Было:
SomeFeature.ts
Стало:
Никто извне ничего не заметил. Считайте, что причина использования - абстрагирование.
Действительность такова, что в ключевых сообществах frontend-разработки существует определенный подход, который имеет ряд преимуществ и недостатков. Он активно применяется и хорошо зарекомендовал себя в больших проектах, а посему имеет право на жизнь.
Да, я пробежался глазами по другим файлам, где не использовалось свойство style и неправильно вас понял, но это был не холивар.