Да, JavaScript URLs технически возможны в React 16.9, но они крайне не рекомендуются и будут генерировать предупреждение в консоли.
React намеренно предупреждает против javascript: URLs, потому что они представляют серьёзную уязвимость безопасности. Когда неочищенные пользовательские данные попадают в атрибуты вроде href, это открывает векторы атак XSS (cross-site scripting).
const companyProfile = {
website: "javascript: alert('Your website is hacked')"
};
// Это выведет предупреждение в консоль
<a href={companyProfile.website}>More details</a>
Вместо javascript: URLs используй эти лучшие практики:
<button onClick={() => handleProfileClick()}>
More details
</button>
Имей в виду, что в будущих версиях React будет бросать ошибки для javascript: URLs вместо простых предупреждений, так что лучше отрефакторить существующий код уже сейчас.
Хотя React 16.9 допускает javascript: URLs с предупреждениями, избегай их полностью. Современные паттерны React предоставляют более безопасные и чистые альтернативы, которые лучше соответствуют лучшим практикам фреймворка и стандартам безопасности.
React 16.9 сразу выбросит ошибку, когда в атрибуте href используется URL с протоколом javascript:, предотвращая выполнение кода.
Новый — ещё не проверен сообществом
Вы