點燈坊

失くすものさえない今が強くなるチャンスよ

Canvas 初體驗

Sam Xiao's Avatar 2020-11-24

Vue 也可直接使用 HTML 5 Canvas 繪圖,不必搭配其他 Package。

Version

Vue 2.6.11
HTML 5

Canvas

overview000

使用 HTML 5 Canvas 直接畫出矩形。

<template>
  <canvas ref="canvas"/>
</template>

<script>
let mounted = function() {
  let context = this.$refs.canvas.getContext('2d')
  context.canvas.width = innerWidth
  context.canvas.height = innerHeight

  context.strokeStyle = 'red'
  context.lineWidth = 2
  context.strokeRect(20, 50, 100, 100)
}

export default {
  name: 'App',
  mounted
}
</script>

第 2 行

<canvas ref="canvas"/>

使用 HTML 5 的 <canvas> tag,為了能讓 Vue 控制,特別加上 ref

第 7 行

let context = this.$refs.canvas.getContext('2d')
context.canvas.width = innerWidth
context.canvas.height = innerHeight
  • 使用 $refs 取得 canvas ref,並指使用其 2d context
  • 設定 canvas 的長寬

11 行

context.strokeStyle = 'red'
context.lineWidth = 2
context.strokeRect(20, 50, 100, 100)
  • 使用 strokeStyle 設定矩形外框顏色
  • 使用 lineWidth 設定外框寬度
  • 使用 strokeRect() 繪製矩形

Conclusion

  • 若想完全以 code 繪製 HTML 5 Canvas,其實可不必使用 package,直接使用 Canvas API 即可