uniapp使用renderjs

renderjs 可以让uniapp调用dom的方法

<template>
	<view class="content">
		<!-- #ifdef APP-PLUS || H5 -->
		<view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echarts" class="echarts"></view>
		<button @click="changeOption">更新数据</button>
		<!-- #endif -->
		<!-- #ifndef APP-PLUS || H5 -->
		<view>非 APP、H5 环境不支持</view>
		<!-- #endif -->
	</view>
</template>

<script>
	export default {
		data() {
			return {
				option: {
					title: {
						text: 'ECharts 入门示例'
					},
					tooltip: {},
					legend: {
						data: ['销量']
					},
					xAxis: {
						data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
					},
					yAxis: {},
					series: [{
						name: '销量',
						type: 'bar',
						data: [5, 20, 36, 10, 10, 20]
					}]
				}
			}
		},
		onLoad() {

		},
		methods: {
			changeOption() {
				const data = this.option.series[0].data
				// 随机更新示例数据
				data.forEach((item, index) => {
					data.splice(index, 1, Math.random() * 40)
				})
			},
			onViewClick(options) {
				console.log(options)
			}
		}
	}
</script>

<script module="echarts" lang="renderjs">
	let myChart
	export default {
		mounted() {
			if (typeof window.echarts === 'function') {
				this.initEcharts()
			} else {
				// 动态引入较大类库避免影响页面展示
				const script = document.createElement('script')
				// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
				script.src = 'static/echarts.js'
				script.onload = this.initEcharts.bind(this)
				document.head.appendChild(script)
			}
		},
		methods: {
			initEcharts() {
				myChart = echarts.init(document.getElementById('echarts'))
				// 观测更新的数据在 view 层可以直接访问到
				myChart.setOption(this.option)
			},
			updateEcharts(newValue, oldValue, ownerInstance, instance) {
				// 监听 service 层数据变更
				myChart.setOption(newValue)
			},
			onClick(event, ownerInstance) {
				// 调用 service 层的方法
				ownerInstance.callMethod('onViewClick', {
					test: 'test'
				})
			}
		}
	}
</script>

<style>
	.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.echarts {
		margin-top: 100px;
		width: 100%;
		height: 300px;
	}
</style>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Uniapp 是一款跨平台的开发框架,可以同时支持多个平台,包括 iOS、Android、H5 等。而 renderjs 是一款基于 Vue.js 的可视化开发工具,可以在 Uniapp 中快速实现高德地图的集成。 以下是在 Uniapp使用 renderjs 实现高德地图的步骤: 1. 首先在项目中安装 renderjs: ``` npm install renderjs -D ``` 2. 在需要使用高德地图的页面中引入 renderjs: ```javascript import Renderjs from 'renderjs' ``` 3. 在页面的 data 中定义地图相关的变量: ```javascript data() { return { map: null, // 地图对象 markers: [], // 地图标记点 center: [116.397428, 39.90923], // 地图中心点坐标 zoom: 11 // 地图缩放级别 } } ``` 4. 在页面的 mounted 生命周期中初始化地图: ```javascript mounted() { // 初始化地图 this.map = Renderjs.initMap('map-container', { center: this.center, zoom: this.zoom }) } ``` 5. 在需要添加标记点的地方,调用 addMarker 方法: ```javascript // 添加标记点 this.markers.push({ position: [116.397428, 39.90923], content: '这是一个标记点' }) this.addMarker() ``` 6. 实现 addMarker 方法: ```javascript addMarker() { this.markers.forEach(marker => { Renderjs.addMarker(this.map, { position: marker.position, content: marker.content }) }) } ``` 7. 在页面中添加地图容器,并设置 id 为 map-container: ```html <template> <view> <view id="map-container"></view> </view> </template> ``` 通过以上步骤,就可以在 Uniapp 中快速实现高德地图的集成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值