iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue和uniapp中该如何使用canvas详解
  • 880
分享到

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

uni-appvueuniapp使用canvasvueuniappcanvas 2022-11-13 18:11:17 880人浏览 泡泡鱼
摘要

目录Vue与uniapp中如何使用canvas?示例属性说明注意事项:总结Vue与uniapp中如何使用canvas? 一般Vue情况下我们使用canvas是这样使用的 //创建ca

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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue和uniapp中该如何使用canvas详解

本文链接: https://www.lsjlt.com/news/170074.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Vue和uniapp中该如何使用canvas详解
    目录Vue与uniapp中如何使用canvas?示例属性说明注意事项:总结Vue与uniapp中如何使用canvas? 一般Vue情况下我们使用canvas是这样使用的 //创建ca...
    99+
    2022-11-13
    uni-app vue uniapp使用canvas vue uniapp canvas
  • 详解eslint在vue中如何使用
    目录1、说明2、下载相关依赖包3、配置文件.eslintrc.js(还有其他方式配置规则)4、在vscode(版本1.44.0)配置保存时自动格式化代码5、在package.json...
    99+
    2024-04-02
  • 一文详解如何在uniapp中优雅地使用WebView
    目录从webview页面传值到uniapp中从uniapp中动态传值到webview页面调用webview中的方法总结这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 从...
    99+
    2023-01-03
    uniapp使用webview的方法 uniapp和webview实时交互 uniapp使用webview
  • 一文详解uniapp中如何使用easycom自定义组件
    目录一、全局注册二、局部注册第一种:传统vue规范第二种:通过uni-app的easycom规则第三种方法:通过npm安装总结一、全局注册 uni-app 支持配置全局组件,需在 m...
    99+
    2023-05-18
    uniapp easycom uniapp 自定义组件 uniapp easycom自定义组件
  • Java中该如何优雅的使用线程池详解
    目录为什么要用线程池?线程池线程池基本概念线程池接口定义和实现类ExecutorServiceScheduledExecutorService线程池工具类newFixedThread...
    99+
    2024-04-02
  • VUE 使用canvas绘制管线管廊示例详解
    目录引言drawRealTimePipeline:绘制实时管线drawRealTimeEquipment:绘制实时设备:drawRealTimeText:绘制实时文本:moveAll...
    99+
    2023-05-18
    VUE canvas绘制管线/管廊 VUE canvas绘制
  • 详解在Vue中如何使用provide与inject
    目录provide()函数inject()函数总结在vue2.0里面provide与inject是以选项式(配置)API的方式在组件中进行使用的,解决的是跨组件(祖孙)间通信的一种方...
    99+
    2023-03-20
    Vue使用provide inject Vue provide inject
  • 如何在uniapp中使用nvue
    如何在uniapp中使用nvue?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。开始创建第一个 nvue 页面。目录结构:index.nvue 代码如下:<template...
    99+
    2023-06-15
  • VUE中的mapState和mapActions的使用详解
    最近在开发一套系统,前端使用VUE开发,由于本人是后端开发,前端也会一点,但是VUE接触不多,在VUE项目开发遇到的一些坑记录一下,不是专业前端写好的不好,大家不要唝。。。 在VUE...
    99+
    2024-04-02
  • Vue中 Vue.prototype使用详解
    目录1. 基本示例2. 为实例prototype设置作用域3. 注册和使用全局变量4. 原型方法的上下文5. 应用示例5.1 引入 axiosVue.prototype、Vue.co...
    99+
    2024-04-02
  • Vue中如何使用base64编码和解码
    目录Vue使用base64编码和解码Vue路由获取query中base64解码出错总结Vue使用base64编码和解码 在项目根目录下安装 npm install --save js...
    99+
    2023-02-08
    Vue使用base64编码 Vue使用base64解码 base64编码和解码
  • 详解Vue中$refs和$nextTick的使用方法
    目录1、$refs简介$refs获取DOM元素$refs获取组件对象2、$nextTick基本使用vue异步更新DOM利用$nextTick解决以上问题$nextTick使用场景1、...
    99+
    2024-04-02
  • 如何使用uniapp vue与nvue实现轮播图
    小编给大家分享一下如何使用uniapp vue与nvue实现轮播图,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vue部分如下:<template...
    99+
    2023-06-22
  • Vue中$refs和$nextTick如何使用
    本篇内容主要讲解“Vue中$refs和$nextTick如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue中$refs和$nextTick如何使用”吧!1、$refs简介$refs是v...
    99+
    2023-06-29
  • Vue中bus的使用详解
    vue总线机制(bus) vue中非父子组件之间通信除了使用vuex,也可以通过bus总线,两者适用场景不同。 bus适合小项目、数据被更少组件使用的项目,对于中大型项目 数据在很多...
    99+
    2024-04-02
  • vue中axios的使用详解
    目录1、选择什么网络模块2、JSONP3、axios的请求方式4、axios框架的基本使用1、新建vue项目2、安装axios依赖3、编写代码4、请求结果5、axios发送并发请求方...
    99+
    2024-04-02
  • Vue中slot的使用详解
    目录使用 slot基础用法具名插槽作用域插槽slot 实现总结在Vue中,我们使用组件来组织页面和组织代码,类似于搭积木,每一个组件都是一个积木,使用一些相同或者不同组件就能搭建出我...
    99+
    2024-04-02
  • Vue中webpack的使用详解
    目录1、什么是Webpack2、模块化的演进AMDCMDES6模块3、安装Webpack4、使用webpack总结1、什么是Webpack 本质上, webpack是一个现代Java...
    99+
    2024-04-02
  • ajax中error该如何使用
    ajax中error该如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。error使用情况:1、当后台返回的dataType类型和前台写的...
    99+
    2024-04-02
  • vue如何批量引入组件、注册和使用详解
    前言 组件是我们非常常用的东西,很多人使用组件都是通过一个一个文件去引用和注册。这篇文章就来介绍下vue批量引入组件、注册和使用的方法。 一、使用场景 在日常开发中,经常会有这样一...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作