Mars3d中有几个函数在.vue中文件可以正常使用,在.ts文件中使用报错

152 篇文章 2 订阅
135 篇文章 0 订阅

1.这几个函数在.vue中文件可以正常使用,在.ts文件中使用报错

 

2.原因是:需要vue中map.ts与vue中可以交互

想这样用是没办法交互的

 交互的意思是:

就是vue 可以调用ts 中的方法, ts可以通过eventTarget.fire()抛出事件 vue通过eventTarget.on()监听到

#### `map.ts`和`index.vue`各自代码业务分离的原则

- 涉及地图业务的操作均写在 map.ts 中

- 涉及 UI 层面、和地图无关的操作均写在 index.vue 中,vue 中尽量不使用 mars3d 和 Cesium 开头的类

#### index.vue 与 map.ts 交互

1. index.vue 直接调用 map.ts 中 导出的函数或对象

2. index.vue 调用 map.ts 中的函数拿到返回值,继续后续处理,异步操作返回值可以是 Promise

3. map.ts 主动触发 ui 变化,通过 mars3d.BaseClass 事件中心处理。如

```ts

// map.ts

export const eventTarget = new mars3d.BaseClass()

function change() {

  mapWork.eventTarget.fire("change", { value: "hello change" })

}

// index.vue

import * as mapWork from "./map"

const change = (e: any) => {

  console.log(e)

}

mapWork.eventTarget.on("change", change)

onUnmounted(() => {

  mapWork.eventTarget.off("change", change) // 注意:请及时销毁事件绑定

})

```

参考开发教程:Mars3D三维可视化平台 | 火星科技

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值