Под "ES" вы имеете в виду ES6/7/...? Нет, ничего особенного тут нет, замените let/const на var, стрелочные функции на обычные - всё будет работать точно так же.
как сделать так, чтобы и картинка на странице реактивно пропадала?
Да хрен его знает. Вы же наврали про свой код. Или дико накосячили. В шаблоне - почему в removeImage передаётся какой-то id, что это такое, откуда он взялся, почему он одинаковый для всех элементов? Как вы собираетесь удалять разные элементы на основе одного значения? Это абсурд.
Ильдус Сираев, проблема не в key. Да ему и про key ничего знать на самом деле не интересно - хотел бы, сам за эти три дня открыл бы документацию и прочёл.
Да-а-а-а... Видать, дело у вас срочное, очень надо разобраться с проблемой - раз вы целых три дня скрывали своё "не получается". Кстати, "не получается" - это разговор ни о чём. Как и "все сделал" - тут таких немало было, которым казалось, что они "все сделали". КОД В ПЕСОЧНИЦУ. Давайте, показывайте, как вы накосячили.
UPD. В ответ добавлены ссылки на демо по каждому предложенному варианту.
Dauren, и снова смеюсь. Как это нет желания отвечать? - я же вам ответил, предложил ТРИ варианта решения проблемы, с который вы сюда пришли. А вы их проигнорировали. Это у вас нет желания принимать ответы на собственные же вопросы. Шизофрения?
Дмитрий, подменить обработчик без переписывания компонента - да, можно с помощью наследования, объявив в наследнике метод с таким же именем. Но сильно сомневаюсь, что такое делать нужно.
Что касается манипуляций с контентом - извините, тут я не могу угнаться за вашими мыслями. Отчего-то кажется, что исходный компонент написан криво и должен быть переписан.