Vue.js dynamically passing in functions
First off, the file jsonArray.js doesn't contain &quot;JSON&quot;. It's a JavaScript source code file containing an JavaScript array literal which in turn contains JavaScript object literals. And since it's not JSON, you could theoretically put functions into the objects:
{
  alt: &quot;clearValueIcon&quot;, // Quotes around key are not needed, since it's not JSON
  src : &quot;...&quot;, // shortened
  style: &quot;grid-column:1/2;grid-row: 2/3;&quot;,
  handler() {
     this.value = &quot;&quot;; // For example
  }
}, 

And with a helping method:
methods: {
  callHandler(handler) {
     handler.call(this);
  }
}

&lt;img
     v-for=&quot;img in imagesData&quot;
     :key=&quot;img.alt&quot;
     @click=&quot;callHandler(img.handler)&quot;
     :alt=&quot;img.alt&quot;
     :src=&quot;img.src&quot;
     :style=&quot;img.style&quot;
/&gt;


However I don't really see the point of outsourcing the buttons into a data array like this. Unless you are using the array in some other way in the project, you should just straight up have a list of imgs (or custom &quot;button&quot; components) in your template.
Two more things:

The styles belong in the style sheet.
The chosen texts for the alt attributes are bad. They are supposed to be fallback texts that displayed to the user in the case the images can't be displayed to (or seen by) the user. For the shown buttons something like &quot;Clear&quot;, &quot;+/-&quot; and &quot;%&quot; would be better choices.

EDIT: One more thing: You shouldn't be using a plain image with a click handler, but for accessability wrap them in a &lt;button&gt; (or &lt;a&gt;) and put the handler on them.