【uniapp】微信小程序迁移至uniapp以及echarts图表

这篇具有很好参考价值的文章主要介绍了【uniapp】微信小程序迁移至uniapp以及echarts图表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需要对微信小程序开发和uniapp开发都有了解

目标:

  1. 微信小程序原生开发转为uni-app开发
  2. 微信小程序云开发转为uniCloud阿里云开发,涉及云数据库和云存储的迁移
  3. 迁移后依然发行至微信小程序

代码迁移

借助 miniprogram-to-uniapp工具,源项目同级目录下会生成后缀为_uni的uniapp项目

# 全局安装
npm install miniprogram-to-uniapp -g
# 查看安装
wtu -V
# 转换
wtu -i [微信小程序路径]

云开发迁移

  1. 微信云开发数据库所有表导出为为json格式,云存储的图片也导出
  2. 在uniCloud控制台创建阿里云服务空间
  3. 在阿里云数据库建表并导入数据,如果只需要查询数据则可以不编辑表结构
  4. 在阿里云云存储批量上传图片

代码细节调整

转换后基本的页面和功能是没有问题的,但涉及云开发、echarts、openid获取等一些功能则需要一项一项修改调整。

uniapp配置文件

maninfest.json :申请并配置AppID等

uniCloud云存储图片显示

修改<image src="">中原本的地址为云存储的cdn地址https://vkceyugu.cdn.bspapp.com/....,点击详情可见。
【uniapp】微信小程序迁移至uniapp以及echarts图表

uniCloud云数据库

修改db的引入,jql语法大体不变,但注意返回参数格式变化了需要调整。

const db = uniCloud.database();

uniapp获取openid

之前是wx.login和微信云函数,现在需要借助uniCloud云函数。

云函数wx-info代码

'use strict';
exports.main = async (event, context) => {
	//event为客户端上传的参数  
	let js_code = event.code

	const appid = '' //微信小程序appid  
	const secret = '' //微信小程序APPSecret秘钥  
	const loginUrl = 'https://api.weixin.qq.com/sns/jscode2session'
	console.log(js_code)
	let res = await uniCloud.httpclient.request(loginUrl, {
		data: {
			appid: appid,
			secret: secret,
			js_code: js_code,
			grant_type: 'authorization_code'
		},
		dataType: 'json'
	})

	let openid = res.data
	//返回数据给客户端  
	return openid
};

APP.vue,先登录获取code,在通过code获取openid

uni.login({
	provider: "weixin",
	success: (res) => {
		console.log("code: ", res.code)
		uniCloud.callFunction({
			name: "wx-info",
			data: {
				"code": res.code
			}
		}).then(res => {
			console.log("openid:", res.result.openid);
		}).catch((err) => {
			console.log(err)
		})
	}
});

radio点击后需要取消点击

不使用radio-group@change事件,而在每个radio上分别使用@tap事件

<radio-group>
	<radio :checked="checked1" :value="value1" @tap="change" :data-item="value1"></radio>
	<radio :checked="checked2" :value="value2" @tap="change" :data-item="value2"></radio>
</radio-group>

change(data) {
	const value = data.currentTarget.dataset.item;
}

uniapp使用echarts

原先使用的是官方的echarts-for-weixin ,没有找到好的直接修改的办法,研究后发现使用插件最方便。

图表插件
  1. 删除旧的ec-canvas文件夹

  2. 保留旧的图表配置option

  3. 安装插件:百度图表插件,点击可自动导入,可兼容多端
    【uniapp】微信小程序迁移至uniapp以及echarts图表

  4. 插件安装后,引用并使用,删掉原来多余的部分代码,不用修改原来的option

    <l-echart ref="chart1" @finished="showChart1"></l-echart>
    
    import * as echarts from '@/uni_modules/lime-echart/static/echarts.min'
    
    let option = {...}
    this.$refs.chart1.init(echarts, chart1 => {
    	chart1.setOption(option);
    })
    

注意:直接使用插件内的echarts.min文件还想按需引入的话,可在官网按需定制echarts.min.js,然后替换掉uni_modules内插件的echarts.min.js。

海报生成

canvas绘图相关代码不变,绘制echarts图表时通过以下代码获取临时路径文章来源地址https://www.toymoban.com/news/detail-489066.html

this.$refs['chart1'].canvasToTempFilePath({
	success: res => {
		resolve(res.tempFilePath)
	},
	fail: res => {
		reject()
	}
})

到了这里,关于【uniapp】微信小程序迁移至uniapp以及echarts图表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)

    微信小程序中使用 echarts 需使用官方提供的 ec-canvas 组件 点击下方链接,下载 ec-canvas 组件 https://gitcode.net/mirrors/ecomfe/echarts-for-weixin/-/tree/master 将其中的 ec-canvas 文件夹拷贝到微信小程序的分包中 ( 因 ec-canvas 组件较大,约 1M,若放在主包中很容易超出 2M 的大小限制,不了解

    2024年02月09日
    浏览(51)
  • 微信小程序使用Echarts-for-weixin实现图表动态更新数据、懒加载(干货满满!!!)

    后端开发入坑全栈之 微信小程序 + Echarts图表 上需求,如下: Apache Echarts是一个基于JavaScript的开源可视化图表库,用于创建各种类型图表,常用图表类型有柱状图、折线图、饼状图、散点图等等。废话不多说,直接上干货!耶✌ 1、下载Echart-for-weixin项目 echart-for-weixin 项目提

    2024年02月04日
    浏览(39)
  • uniapp 微信小程序使用echarts

    本文目的:通过分包的方式,尽可能在微信小程序中使用最新的echarts。 当然你也可以直接使用现成的uchart或者市场里别人封好的echarts. 准备工作 下载echarts-for-weixin源码。 复制 ec-canvas 文件夹以及下属文件,在uniapp项目中与pages同级的地方创建 wxcomponents 文件夹,将复制的文件

    2024年02月04日
    浏览(49)
  • UNIAPP微信小程序使用Echarts

    ​ 最近要在uniapp做的小程序中使用echarts,网上搜了很多教程都很麻烦,这里提供一种简便快捷CV方案。 ​ 先说下图表选型的问题,如果你只用于微信小程序,可以使用本方案,Echarts丰富多样的图表和广大的开源图库都已使用。如果要考虑兼容性问题,比如兼容支付宝小程序

    2024年02月09日
    浏览(45)
  • uniapp微信小程序中使用echarts

    可以先随便建个文件夹,然后 npm init。运行下面的命令行,下载依赖 找到node_modulesmpvue-echarts下的文件,保留src文件夹,其他删除,复制mpvue-echarts文件夹到项目的components中 1.2、获取定制echarts的js文件 在https://echarts.apache.org/zh/builder.html定制echarts的js文件,然后下载,放到c

    2024年02月15日
    浏览(49)
  • uniapp/微信小程序解决echarts层次问题

    1.由于原生的canvas组件高于其他组件 2.这样设置z-index没有用 3.大部门解决办法是将echarts转化成图片 看了微信小程序官方文档,官方提供了一种cover-view标签来覆盖canvas、video等层级过高问题   所以本次使用cover-view来解决层级问题一下 以下是代码实现: cover-view class=\\\"customerb

    2024年02月09日
    浏览(40)
  • 在uniapp,微信小程序中使用echarts

    一、使用npm或yarn安装mpvue-echars 二、可在echarts官网在线定制,下载echarts.min.js文件 ECharts 在线构建 三、在node_modules中找到mpvue-echarts,将src中的文件复制出来,作为组件,将第二步下载的echarts.min.js放进去  四、改写echarts.vue文件 这里我直接把我项目中的代码放上来了 五、引入

    2024年02月09日
    浏览(43)
  • uniapp echarts 适配H5与微信小程序

    接上文:uniapp 微信小程序使用echarts,这篇文章目的为使用uniapp时提供一个同时兼容H5和小程序的echarts组件,在使用时尽量减少心智负担。 首先修改uniapp 微信小程序使用echarts中的 ec-canvas 组件,将initChart方法置于该组件内部,而不是存在于业务组件中。 1.1 在 ec-canvas 组件m

    2024年02月06日
    浏览(44)
  • uniapp微信小程序接入echarts(踩坑无数)

    因为本次小程序开发使用到了echarts 发现接入有点麻烦,记录一下 使用了uniapp插件市场的 echarts-for-wx插件 导入到自己的项目会多出以下文件夹,真正有用的是红框内的三个文件,可以将其移入到components下,具体哪个页面/组件使用了就引入 这里我是把uni-ec-canvas移入到compone

    2024年02月12日
    浏览(45)
  • uniapp 微信小程序 echarts地图 点击显示类目

    效果如图: 在tooltip内axisPointer内添加 label:{show:true} 即可显示“请求离婚”的标题

    2024年02月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包