【问题标题】:this.$refs.canvas undefined in vuejsthis.$refs.canvas 在 vuejs 中未定义
【发布时间】:2019-01-23 03:49:14
【问题描述】:

我正在使用vuejs3canvas 设置一个新项目,但我被困在canvas 元素中。谁能给我一些建议或想法?

在我的项目中,我得到了undefinedthis.$refs.canvas。另外,当我使用document.getElementById('canvas') 时,我得到null

<template>
  <div id="app">
    <canvas
      ref="canvas"
      id="canvas"
      class="bg"
      width="400"
      height="400"></canvas>
  </div>
</template>

<script>

export default {
  name: 'app',
  data() {
    return {
    }
  },
  created() {
    // const canvas = this.$refs.canvas.getContext('2d') 
    const canvas = document.getElementById('canvas')
    console.log(canvas)
  },
}
</script>

如果有人能给我一些帮助,我们将不胜感激。

【问题讨论】:

  • 你试过用mounted方法访问它吗? created 中的元素尚未呈现。

标签: vue.js


【解决方案1】:

元素还不会在created 中呈现。试试mounted

<template>
  <div id="app">
    <canvas
      ref="canvas"
      id="canvas"
      class="bg"
      width="400"
      height="400"></canvas>
  </div>
</template>

<script>

export default {
  name: 'app',
  data() {
    return {
    }
  },
  mounted() {
    const canvas = this.$refs.canvas.getContext('2d') 
    console.log(canvas)
  },
}
</script>

在此处查看生命周期图:https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram

【讨论】:

  • @Veexyy 别担心,在这个领域总是有很多东西要学;)
猜你喜欢
  • 2016-01-27
  • 2018-08-17
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多