引用过echart后的vue页面page1,page2后期改造成index轮播-会遇到的问题

需求说明:有两个展示页面page1,page2,都用到了一个公共组件map用来展示地图的组件。

后面改了需求,变成一个页面用轮播图的方式轮回播出page1和page2.

为了简化,改造用了ant框架自带的a-carousel

复制代码
  <a-carousel autoplay>
            <div>
                <index1></index1>  这里是之前的page1
            </div>
            <div>
                <index2></index2>  这里是之前的page2
            </div>
            <!-- <div><h3>如果有其他场景-这里用到其它frame</h3></div> -->
        </a-carousel>
复制代码

出现了以下问题:

之前的功用组件hotmap不起左右,地图模块小时不见了

 

消失的原因:两个pageindex 共用组件hotmap。

那为什么之前没集成一个页面的时候会没事,因为之前路由跳转page2时page1 destroy,hotmap不会同时复用。

也就是有一个知识点:所有的echart 所依赖绘制的canvas的容器的id最好且必须拥有唯一的(同时引入一个页面时)

所以,只要改变以下共同引入的组件变成两个相同组件即可:

lunbo-index:

复制代码
 <a-carousel autoplay>
            <div>
                <index1></index1>  
            </div>
            <div>
                <index2></index2>  
            </div>
            <!-- <div><h3>3</h3></div> -->
        </a-carousel>

import index1 from "./index.vue";
import index2 from "./index2.vue";

 components:{
        index1,index2
    }
复制代码

index1:

复制代码
 <!-- 地图 -->
    <div class="mapContain">
      <hotmap></hotmap>
    </div>
import hotmap from "../components/charts/hotmap4.vue";
components: {
    servecar,
    hotmap,
...
复制代码

index2

复制代码
  <!-- 地图 -->
            <div class="mapContain">
                    <hotmap2></hotmap2>
                <!-- <iframe src="../static/index.html" width="100%" height="100%" frameborder="0" scrolling="auto"></iframe> -->
            </div>
import hotmap2 from  "../components/charts/hotmap.vue";
components:{
        caryunying,hotmap2,servertime
        ,unfinished,duohuanServer
...
复制代码

这会就会出现了

另外扩展一个知识点:

走马灯自定义时间配置:

官网上没有说明此项配置:

添加属性:

autoplaySpeed
例如:
复制代码
 <a-carousel autoplay autoplaySpeed="15">
            <div>
                <index1></index1>  
            </div>
            <div>
                <index2></index2>  
            </div>
            <!-- <div><h3>3</h3></div> -->
        </a-carousel>
复制代码

即可调整

或者:

复制代码
<div>
         <a-carousel autoplay :autoplaySpeed="autoplaySpeed">
            <div>
                <index1></index1>  
            </div>
            <div>
                <index2></index2>  
            </div>
            <!-- <div><h3>3</h3></div> -->
        </a-carousel>
    </div>

data() {
        return {
            autoplaySpeed:2000//2s
        }
    },
复制代码

鼠标移上去会默认不轮播,鼠标移出继续轮播

另附上react版本:

<Carousel autoplay autoplaySpeed={8000} >
     //  需要的轮播代码      
 </Carousel>

 

posted @   少哨兵  阅读(315)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示