Il problema è che il valore per backgroundImagedeve essere una stringa come questa:
<div class="circular" v-bind:style="{ backgroundImage: 'url(' + image + ')' }"></div>
Ecco un violino semplificato che funziona: https://jsfiddle.net/89af0se9/1/
Re: il commento qui sotto su kebab-case, ecco come puoi farlo:
<div class="circular" v-bind:style="{ 'background-image': 'url(' + image + ')' }"></div>
In altre parole, il valore per v-bind:styleè solo un semplice oggetto Javascript e segue le stesse regole.
AGGIORNAMENTO: Un'altra nota sul motivo per cui potresti avere problemi a farlo funzionare.
Assicurati che il tuo imagevalore sia tra virgolette in modo che la stringa finale risultante sia:
url('some/url/path/to/image.jpeg')
In caso contrario, se l'URL dell'immagine contiene caratteri speciali (come spazi o parentesi), il browser potrebbe non applicarlo correttamente. In Javascript, l'assegnazione sarebbe simile a:
this.image = "'some/url/path/to/image.jpeg'"
o
this.image = "'" + myUrl + "'"
Tecnicamente, questo potrebbe essere fatto nel modello, ma l'escape richiesto per mantenerlo valido HTML non ne vale la pena.
Maggiori informazioni qui: la citazione del valore di url () è davvero necessaria?
backgroundImage) e non del caso del kebab (background-image) anche se i documenti dicono che può essere l'uno o l'altro.