如何在 Vuejs 中加载 Pixi 实例?
How to load a Pixi instance in Vuejs?
我正在按照 Pixi tutorial 在 VueJS 组件中学习 PixiJS
我的控制台显示此错误:
vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in render: "TypeError: Converting circular structure to JSON
<template>
<div>
{{ displayPixi() }}
</div>
</template>
<script>
import * as PIXI from 'pixi.js'
export default {
name: 'HelloWorld',
methods: {
displayPixi() {
return new PIXI.Application({width: 256, height: 256})
}
}
}
</script>
如何在 VueJS 中加载 Pixi 实例?
嗯,您真正需要做的是按照您提供的教程进行操作。
如您所见,创建应用程序后,您需要将其视图附加到某物。
作为该教程中报告的示例 document.body.appendChild(app.view);
以 "Vue" 的方式,例如您可以在数据中定义
data(){
return {
app: new Application(...)
}
在你挂载的挂钩中你可以
mounted(){
this.$el.appendChild(this.app.view)
}
这只是一个例子,按照我在 mounted hook 中所说的去做,这不是最好的解决方案,因为如果有条件渲染它会触发,但它会起到作用。
我注意到,当我 post 将我的问题作为答案输入时,它被否决了,但我想 post 我的工作代码,因为它可能对其他人有帮助,并且与获取 Pixijs 的概念相同在一个 vue 组件中。这也是使用 vue ui 创建应用程序
<template>
<div class="connections">
<canvas id="pixi"></canvas>
</div>
</template>
<script>
import * as PIXI from 'pixi.js'
export default {
name: 'ConnectionsLayer',
methods: {
drawPixi() {
var canvas = document.getElementById('pixi')
const app = new PIXI.Application({
width: window.innerWidth,
height: window.innerHeight,
antialias: true,
transparent: true,
view: canvas,
})
let graphics = new PIXI.Graphics()
graphics.lineStyle(8, 0x000000)
//start
graphics.moveTo(300, 250)
//end
graphics.lineTo(500, 250)
app.stage.addChild(graphics)
},
},
mounted() {
this.drawPixi()
},
}
``
我正在按照 Pixi tutorial 在 VueJS 组件中学习 PixiJS 我的控制台显示此错误:
vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in render: "TypeError: Converting circular structure to JSON
<template>
<div>
{{ displayPixi() }}
</div>
</template>
<script>
import * as PIXI from 'pixi.js'
export default {
name: 'HelloWorld',
methods: {
displayPixi() {
return new PIXI.Application({width: 256, height: 256})
}
}
}
</script>
如何在 VueJS 中加载 Pixi 实例?
嗯,您真正需要做的是按照您提供的教程进行操作。
如您所见,创建应用程序后,您需要将其视图附加到某物。
作为该教程中报告的示例 document.body.appendChild(app.view);
以 "Vue" 的方式,例如您可以在数据中定义
data(){
return {
app: new Application(...)
}
在你挂载的挂钩中你可以
mounted(){
this.$el.appendChild(this.app.view)
}
这只是一个例子,按照我在 mounted hook 中所说的去做,这不是最好的解决方案,因为如果有条件渲染它会触发,但它会起到作用。
我注意到,当我 post 将我的问题作为答案输入时,它被否决了,但我想 post 我的工作代码,因为它可能对其他人有帮助,并且与获取 Pixijs 的概念相同在一个 vue 组件中。这也是使用 vue ui 创建应用程序
<template>
<div class="connections">
<canvas id="pixi"></canvas>
</div>
</template>
<script>
import * as PIXI from 'pixi.js'
export default {
name: 'ConnectionsLayer',
methods: {
drawPixi() {
var canvas = document.getElementById('pixi')
const app = new PIXI.Application({
width: window.innerWidth,
height: window.innerHeight,
antialias: true,
transparent: true,
view: canvas,
})
let graphics = new PIXI.Graphics()
graphics.lineStyle(8, 0x000000)
//start
graphics.moveTo(300, 250)
//end
graphics.lineTo(500, 250)
app.stage.addChild(graphics)
},
},
mounted() {
this.drawPixi()
},
}
``