Возможно, это не лучшее решение, но оно выполняет свою работу:
import { Link } from 'react-router-dom';
// create functional component Post
export default Post = () => (
<div className="component post">
<button className="button delete-post" onClick={() => {
// ... delete post
// then redirect, without page reload, by triggering a hidden Link
document.querySelector('.trigger.go-home').click();
}}>Delete Post</button>
<Link to="/" className="trigger go-home hidden"></Link>
</div>
);
В принципе логика, связанная с одним действием (в данном случае удаление почты), вызовет триггер для перенаправления. Это не идеально, потому что вы добавите триггер узла DOM в свою разметку, чтобы вы могли удобно вызвать его, когда это необходимо. Кроме того, вы будете напрямую взаимодействовать с DOM, который в компоненте React может быть нежелательным.
Тем не менее этот тип перенаправления не требуется часто. Таким образом, одна или две дополнительные скрытые ссылки в вашей разметке компонента не будут сильно задевать, особенно если вы дадите им значимые имена.
В Java исходный код сначала компилируется в байт-код, а затем выполняется интерпретатором (JVM - виртуальная машина Java).
Байт-код представляет собой машинный код для виртуальной машины.
В Javascript есть среда выполнения (движок), которая выполняет только временную компиляцию (JIT). По сути, во время выполнения ему дается исходный код, который он немедленно преобразует в собственный код, а затем код выполняется. В движке Chrome есть два модуля, которые выполняют компиляцию: один может выполнять код быстро, но код не сильно оптимизирован (интерпретатор зажигания), а другой создает высокопроизводительный код, но компиляция занимает больше времени (турбореактивный компилятор).
Зачем использовать оба:
Java - первый машинно-независимый язык программирования; он использует как компилятор, так и интерпретатор. Компиляторы Java спроектированы таким образом, что преобразуют исходный код в независимые от платформы байтовые коды i-e. Эти байтовые коды затем переводятся в машинный код интерпретатором. Так компилятор и интерпретатор используются на одном языке. Любая система с JVM будет запускать эти байтовые коды.
Java program byte code interpreted by VM machine language
Резюме:
Java-компилятор преобразует исходный код в промежуточный язык, известный как байт-код. Этот байт-код может быть выполнен только в виртуальной среде, называемой JVM. Виртуальная машина Java. JVM является интерпретатором Java-байт-кода. Он преобразует байт-код в машинный язык и выполняет строку за строкой.
это то, как и компилятор, и интерпретатор используются на одном языке ... если он окажется полезным, вы можете упомянуть