const dispatch = createEventDispatcher();
- и вызван он объективной причиной, свелт не будет тащить механизм событий в компонент, если он не нужен разработчику. Нужно писать очень мало кода, и весь он по делу, большинство наших компонентов помещаются в 1 экран при разрешении 1920х1080, это при том что в одном файле и ui логика (в основном импорты и пропсы, изредка реактивные выражения), шаблон и стили в scss. В самих компонентах нет тайпскрипта (и возможно не будет, ибо свелт - компилятор надмножества js+html и ts не понимает некоторые его синтаксические штуки), но все что вокруг у нас на хорошем ts, и тут все что импортируется из свелт прекрасно типизировано, включая svelte/internal. С граблями тоже встретились, но они не критичны, в частности есть проблемы с дев сборкой и с hmr под вебпаком, в итоге собираем в прод сборку даже на деве, теряя часть понятности в выхлопе компилятора, ну и сорсмапы для свелт пока тоже не работают (хотя и у вью есть с этим проблемы, но тот хотя бы не трогает скрипты, а шаблон делает деревом и оставляет на откуп рантайма, свелт же компилится в работу с нативным дом с учетом очень точечных обновлений, понять из выхлопа компилятора что было в шаблоне весьма сложно). В остальном впечатления весьма положительные, от бойлерплейта в реакте после этого еще больше тошнит, к вью тоже возвращаться не особо хочется Вопрос в том, можно ли это сделать без изменений в A.js
function listener(event) {
event.preventDefault();
window.open(location.href);
location.assign(link.href);
}
const links = document.querySelectorAll('a.some-link');
links.forEach(link => link.addEventListener('click', listener));
Насчет split, его минус в том, что он будет всегда искать до конца строки, тогда как indexOf остановит поиск если нашел искомую подстроку. Кроме того split отрежет от исходной строки столько кусков, сколько найдет. В общем под капотом у него мой пример, только в цикле.
Ну и Вы конечно забыли, что у split есть параметр limit, позволяющий ограничить количество поисков.
text.split('.', 1)[0]
всего одна циферка, но будет в разы быстрее