首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在基于SFC的vuejs项目中使用paperjs

在基于SFC的vuejs项目中使用paperjs
EN

Stack Overflow用户
提问于 2018-12-11 19:53:33
回答 1查看 922关注 0票数 1

我有一个基于单一文件组件的vuejs项目。我想添加一个画布,并根据我的组件数据,用paperjs动态地绘制东西。正确的做法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-12 05:29:16

自我反应。一个运作良好的证监会。

代码语言:javascript
复制
<template>
    <canvas resize id="main-canvas">{{circle_diameter}}</canvas>
</template>
代码语言:javascript
复制
<script>
import paper from 'paper'
export default {
    data: () => ({ x: 20, y: 20 }),
    props: ['circle_diameter'],
    methods: {
        updateDrawing() {
            paper.setup(document.getElementById('main-canvas'))
            // Now, draw your things based on component state.
            const point = new paper.Point(this.x, this.y)
            const circle = new paper.Path.Circle(point, this.circle_diameter/2)
            circle.fillColor = 'grey'
            circle.strokeColor = 'black'
        },
    },
    updated() {
        this.updateDrawing()
    },
}
</script>

编辑

由于paperjs会在vue范围之外渲染,因此只有将{{circle_diameter}}放入canvas html标记中,才能进行绘制。通过这种方式,您可以强制Vue在每次属性更改时调用update()。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53723660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档