JSFiddle - React, Tailwind, and code Playground

HTML

<div class="js-image-box image-box">
  <div class="placeholder">Placeholder</div>
</div>

<div class="images">
  <div class="col-md-3 img-fluid"><img class="js-image image" src="http://placehold.it/350x150"></div>
  <div class="col-md-3 img-fluid"><img class="js-image image" src="http://placehold.it/150x150"></div>
  <div class="col-md-3 img-fluid"><img class="js-image image" src="http://placehold.it/400x400"></div>
  <div class="col-md-3 img-fluid"><img class="js-image image" src="http://placehold.it/350x150"></div>
</div>

CSS

.image-box {
  position: relative;
  min-height: 400px;
  width: 400px;
  border: 1px solid #000;
  text-align: center;
}

.image-box .placeholder {
    position: absolute;
    top: 50%;
    text-align: center;
    transform: translateY(-50%);
    width: 100%;
}

.image-box.previewing .placeholder {
    display: none;
}

.image-box .image {
    position: absolute;
    top: 50%;
    text-align: center;
    transform: translate(-50%, -50%);
    height: 100%;
    width: 100%;
}

.images {
  margin-top:10px;
}

JavaScript

function attachEvents() {
	var images = getImages()
  images.forEach(function(image) {
  	attachMouseOverEvent(image);
    attachMouseLeaveEvent(image);
  });
}

function attachMouseOverEvent(element) {
	element.addEventListener('mouseover', function(e) {
  	var clonedImage = e.target.cloneNode();
    addImageToPreview(clonedImage);
  });
}

function attachMouseLeaveEvent(element) {
	element.addEventListener('mouseleave', function(e) {
    removeImageFromPreview();
  });
}

function getImages() {
	return document.querySelectorAll('.js-image');
}

function getImagePreviewElement() {
	return document.querySelector('.js-image-box');
}

function addImageToPreview(imageElement) {
	var previewElement = getImagePreviewElement();
  previewElement.classList.add('previewing');
  previewElement.appendChild(imageElement);
}

function removeImageFromPreview() {
	var previewElement = getImagePreviewElement();
  previewElement.classList.remove('previewing');
  var image = previewElement.querySelector('.js-image');
  image.remove();
}

attachEvents();