我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue和uniapp中该如何使用canvas详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue和uniapp中该如何使用canvas详解

Vue与uniapp中如何使用canvas?

一般Vue情况下我们使用canvas是这样使用的

//创建canvas元素
<canvas
      id="output_mini"
      width="1400"
      height="790"
      style="display: block;position: absolute;top:0;"
      />
      
//找到canvas元素
const canvas = document.getElementById("output_mini");
      
//创建context对象
this.context = canvas.getContext("2d");

//然后画线段画圆等操作
ctx.moveTo(0,0);  //定义开始坐标(0,0)
ctx.lineTo(200,100); //结束坐标 (200,100)
ctx.stroke(); // stroke() 方法来绘制线条:

但是在uniapp中,不能像上面这样直接创建context对象。需要通过uniapp官方提供的方法来创建context对象,之后在进行其他的操作。

示例

//创建canvas元素
<canvas canvas-id="output_mini" width="400" height="360" style="display: block;position: absolute;top:0;" 

//创建context对象
var ctx = uni.createCanvasContext('output_mini', this);

属性说明

属性名类型说明
typeString指定 canvas 类型,支持 2d (2.9.0) 和 webgl
canvas-idStringcanvas 组件的唯一标识符
disable-scrollBoolean当在 canvas 中移动时且有绑定手势事件时,禁止屏幕滚动以及下拉刷新
hidpiBoolean是否启用高清处理
@touchstartEventHandle手指触摸动作开始
@touchmoveEventHandle手指触摸后移动
@touchendEventHandle手指触摸动作结束
@touchcancelEventHandle手指触摸动作被打断,如来电提醒,弹窗
@longtapEventHandle手指长按 500ms 之后触发,触发了长按事件后进行移动不会触发屏幕的滚动
@errorEventHandle当发生错误时触发 error 事件,detail = {errMsg: ‘something wrong’}

注意事项:

  • canvas 标签默认宽度 300px、高度 225px,动态修改 canvas 大小后需要重新绘制。
  • h5、app-vue 中单个尺寸过大的 canvas 在 iOS/Safari 无法绘制(具体限制尺寸未公布)。
  • 同一页面中的 canvas-id 不可重复,如果使用一个已经出现过的 canvas-id,该 canvas标签对应的画布将被隐藏并不再正常工作。
  • canvas 在微信小程序、百度小程序、QQ小程序中为原生组件,层级高于前端组件,请勿内嵌在scroll-view、swiper、picker-view、movable-view 中使用。解决 canvas 层级过高无法覆盖,参考native-component。其他小程序端的 canvas 仍然为 webview 中的 canvas。
  • app-vue 中的 canvas 仍然是 webview 的canvas。app-nvue下如需使用canvas,需下载插件。
  • app-vue的canvas虽然是webview自带的canvas,但却比nvue和微信小程序的原生canvas性能更高。注意并非原生=更快。canvas动画的流畅,关键不在于渲染引擎的速度,而在于减少从逻辑层向视图层频繁通信造成的折损。
  • 小程序、app-nvue,因为通信阻塞,难以绘制非常流畅的canvas动画。h5和app-vue不存在此问题。但注意,app-vue下若想流畅的绘制canvas动画,需要使用renderjs技术,把操作canvas的js逻辑放到视图层运行,避免逻辑层和视图层频繁通信。hello uni-app的canvas示例很典型,在相同手机运行该示例,可以看出在h5端和app端非常流畅,而小程序端由于没有renderjs技术,做不到这么流畅的动画。

总结

到此这篇关于Vue和uniapp中该如何使用canvas的文章就介绍到这了,更多相关Vue uniapp使用canvas内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue和uniapp中该如何使用canvas详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue和uniapp中该如何使用canvas详解

说起canvas是css3新增的标签,而饼状图又是canvas经典,我们公司现在正在用uni-app框架去研发APP,下面这篇文章主要给大家介绍了关于Vue和uniapp中该如何使用canvas的相关资料,需要的朋友可以参考下
2022-11-13

一文详解如何在uniapp中优雅地使用WebView

最近工作中遇到webview,对于我这个刚接触前端的小白来说真的不懂啥意思,下面这篇文章主要给大家介绍了关于如何在uniapp中优雅地使用WebView的相关资料,需要的朋友可以参考下
2023-01-03

一文详解uniapp中如何使用easycom自定义组件

easycom是uniapp的一种组件自动引入的规则,使用这种规则可以使满足规则的组件无需注册直接使用,下面这篇文章主要给大家介绍了关于uniapp中如何使用easycom自定义组件的相关资料,需要的朋友可以参考下
2023-05-18

详解在Vue中如何使用provide与inject

在vue2.0里面provide与inject是以选项式(配置)API的方式在组件中进行使用的,解决的是跨组件(祖孙)间通信的一种方式,本文就来聊聊它们在Vue中具体的使用吧
2023-03-20

Vue中如何使用base64编码和解码

这篇文章主要介绍了Vue中如何使用base64编码和解码问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-08

Vue中$refs和$nextTick如何使用

本篇内容主要讲解“Vue中$refs和$nextTick如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue中$refs和$nextTick如何使用”吧!1、$refs简介$refs是v
2023-06-29

Vue中$attrs和$listeners详解以及使用方法

最近在研究Vue的组件库,之前也用过$attrs和$listeners,官方文档描述的不太详细,也没有太好的例子,下面这篇文章主要给大家介绍了关于Vue中$attrs和$listeners详解以及使用的相关资料,需要的朋友可以参考下
2022-11-16

VUE中的mapState和mapActions如何使用

本文小编为大家详细介绍“VUE中的mapState和mapActions如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“VUE中的mapState和mapActions如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
2023-07-02

Java中如何使用Callable和Future接口详解

本篇文章给大家分享的是有关Java中如何使用Callable和Future接口详解,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Runnable是一个接口,而Thread是Ru
2023-06-20

详解vue中路由的安装和使用方法

Vue 是一款流行的前端开发框架,它提供了诸多方便开发的工具和功能。其中,Vue 路由能够帮助我们创建单页应用程序,并且帮助我们实现路由功能。本篇文章将会介绍 Vue 路由的使用。Vue路由安装在开始使用 Vue 路由之前,我们需要先安装 Vue Router。可以通过 npm 安装:```npm install vue-router```Vue路由器的使用在 Vue 项目的入
2023-05-14

pandas教程:详解如何使用该库读取Excel文件

Pandas 教程:详解如何使用该库读取 Excel 文件,需要具体代码示例Pandas 是一种常用的数据处理库,具有很多强大的功能,尤其是在数据处理方面非常方便。在实际的数据处理过程中,经常需要读取 Excel 文件。本文将详解如何使用
pandas教程:详解如何使用该库读取Excel文件
2024-01-19

编程热搜

目录