AFRAME.registerComponent('helloworld', {
schema:{
things: {type:'array'},
$: {default: document.createElement('div') }
},
init: function() {
this.data = new Proxy( this.data, {
html(data){
return `
`
},
render(data ){ return `${data.things.join("")}`},
set(data,k,v){ (data[k] = v) && (data.$.innerHTML = this.html(data)) },
get(data,k ){ return data[k] != undefined ? data[k] : data }
})
document.body.appendChild(this.data.$)
setInterval( () => {
// update js --> HTML+AFRAME
this.data.things = [ ...this.data.things, Math.random() ].slice(-3)
},500)
},
})