翻页组件重新调用解决方案

翻页组件:page-flip

import { PageFlip } from 'page-flip'
pagefile() {
//绘制翻页
this.pageFlip = new PageFlip(document.getElementById('demoBookExample1'), {
width: 500, // base page width
height: 500, // base page height
size: 'stretch',
// set threshold values:
// drawShadow: false,
minWidth: 350,
maxWidth: 550,
minHeight: 420,
maxHeight: 550,
// clickEventForward:false,
disableFlipByClick: true,
maxShadowOpacity: 0.5, // Half shadow intensity
showCover: true,
mobileScrollSupport: false // disable content scrolling on mobile devices
})
this.PageShow()
}
PageShow() {//加载翻页
this.pageFlip.loadFromHTML(document.querySelectorAll('.shipfiles_page2'))
// // triggered by page turning
this.pageFlip.on('flip', e => {
e, 'fil['
})
// // triggered when the state of the book changes
this.pageFlip.on('changeState', e => {
e, 'eeeeeeeeeeeee'
if (e.data == 'flipping') {
}
})
// // triggered when page orientation changes
this.pageFlip.on('changeOrientation', e => {})
},
`跳转翻页`
this.pageFlip.flip(页码:Number)
`DOM结构查看官网`
https://nodlik.github.io/StPageFlip/

问题发现+尝试解决方案

问题发现
#翻页组件方法再次被调用时,原来的翻页组件样式还保留在页面,而且新生成的翻页组件内容直接在组件外面,没有放在里面
尝试解决方案
`(1)使用翻页组件API的destroy方法销毁,生成新的翻页组件无法获取节点`
`(2)使用翻页组件API的updateHTML方法更新节点,生成的翻页组件没有封面样式`
`(3)使用DOM节点保存数据,等翻页组件再次调用时只更新数据再销毁上个节点和数据,
重新再调用保存的DOM节点,页面样式出现空白透明翻页`
`(4)使用路由跳转刷新页面,让翻页组件只被调用一次(created时调用查到数据时调用翻页组件),
路由菜单是前端的可能可行,如果路由是后台动态生成的,这个方法只能实现刷新跳到进入的默认页面`
`(5)使用父子组件,将翻页组件当成一个子组件,父组件将数据传到子组件,出现空白透明翻页,
上一次数据未被清除,翻页组件可能无法识别动态数据`

解决方案

#此方法直接控制翻页组件的生成销毁,使翻页组件只调用了一次数据
import book from './book.vue' //存放翻页组件
`动态生成组件,控制组件生成`
<component :ImgList="ImgList" :is="componentName"></component> `created`
results() //获取到初始数据
`methods`
change() //获取到更新数据
--->this.componentName='' //改变时清掉动态组件
--->this.results() //获取数据
results(){
ImgList //获取到数据
this.nextTick(()=>{
this.componentName = 'book' //查到数据时重新生成组件
})
}

解决主要问题的后续

#解决控制翻页组件调用后
(1)点击控制页码(页码不在翻页样式中)让翻页组件翻页---this.pageFlip.flip(页码) 页码:page
`问题出现`:父组件的方法不能控制子组件的翻页,翻页组件的内容都在子组件
`问题解决`:将页码通过prop传到子组件,子组件再watch监听页码的变化翻页
watch:{
page(newVal){
this.pageFlip.flip(newVal)
}
}
(2)子组件的方法在父组件上实现(PreviewImg)
`问题出现`:点击翻页组件的图片让它放大,方法在子组件上,放大的内容在父组件上
`问题解决`:通过emit将子组件的数据传到父组件,父组件拿到数据后控制图片的放大 <component :ImgList="ImgList" :is="componentName" :page="page" @PreviewImg="PreviewImg"></component>

翻页组件page-flip调用问题的更多相关文章

  1. 一款易用、高可定制的vue翻页组件

    一款易用.高可定制的vue翻页组件 在线体验:pages.cixi518.com 使用 npm i vo-pages --save vo-pages组件父元素必须设置固定高度并填写属性overflow ...

  2. Atitit easyui翻页组件与vue的集成解决方案attilax总结

    Atitit easyui翻页组件与vue的集成解决方案attilax总结 ===============使用1 ===========\paggingUtil_easyui_vue.js2 C:\U ...

  3. Atitit 翻页功能的解决方案与版本历史 v4 r49

    Atitit 翻页功能的解决方案与版本历史 v4 r49 1. 版本历史与分支版本,项目版本记录1 1.1. 主干版本历史1 1.2. 分支版本  项目版本记录.1 2. Easyui 的翻页组件2 ...

  4. webapp应用--模拟电子书翻页效果

    前言: 现在移动互联网发展火热,手机上网的用户越来越多,甚至大有超过pc访问的趋势.所以,用web程序做出仿原生效果的移动应用,也变得越来越流行了.这种程序也就是我们常说的单页应用程序,它也有一个英文 ...

  5. vue翻页器,包括上一页,下一页,跳转

    翻页组件 -- 子组件<template> <div class="pager-wrapper" ref="pager"> <di ...

  6. element-ui table 的翻页记忆选中

    公司中台项目刚开始开发,用了vue+element,需要许多前置调研,table的翻译记忆选中就是其中之一. template: <el-table :ref="tableRef&qu ...

  7. 解决Hexo博客模板hexo-theme-next的翻页按钮不正常显示问题

    用Hexo搭了个Gitpage的博客,兴冲冲的发了11篇博文后发现翻页按钮不正常显示,显示为<i class="fa fa-angle-right"></i> ...

  8. Atitit.pagging  翻页功能解决方案专题 与 目录大纲 v3 r44.docx

    Atitit.pagging  翻页功能解决方案专题 与 目录大纲 v3 r44.docx 1.1. 翻页的重要意义1 1.2. Dep废弃文档   paip.js翻页分页pageing组件.txt1 ...

  9. Web jquery表格组件 JQGrid 的使用 - 5.Pager翻页、搜索、格式化、自定义按钮

    系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...

随机推荐

  1. 小程序wx.getRecorderManager()录音管理

    小程序中提供了两种录音的API,wx.startRecord和wx.getRecorderManager(),前一个现在微信团队已经不再维护,所以在这里写一下新的录音管理,比之前要强大 1.小程序录音 ...

  2. CCF201604-2俄罗斯方块

    问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏. 游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块.每一轮,都会有一个新的由4个小方 ...

  3. XShell免费版的安装配置教程以及使用教程(超级详细)

    ​一. XShell的作用 XShell可以在Windows界面下来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的.它支持 RLOGIN.SFTP.SERIAL.TELNET.SSH2 ...

  4. python---用顺序表实现队列

    class Queue(object): """队列""" def __init__(self): self.__list = [] def ...

  5. 第一阶段:Java基础之异常和处理

    文章目录 Java中异常处理机制的简单和应用 一.异常的体系结构&分类 二.问题扩展 三.应用场景 Java中异常处理机制的简单和应用 异常也是一种对象,Java中有很多异常类,并且定义了基类 ...

  6. 线性表(python实现)

    线性表 1 定义 线性表是由 \(n(n>=0)\)个数据元素(节点)\(a1.a2.a3.-.an\) 成的有限序列.该序列中的所有节点都具有相同的数据类型.其中,数据元素的个数 \(n\) ...

  7. centos6的yum源更新版本

    概述 centos6系统从2020年12月1号开始不再维护,官方的yum源不再可用,同时国内的阿里云镜像和163镜像也都不再可用. 但是我们有一些老的服务器仍然在使用centos6系统版本,依赖库的安 ...

  8. Oracle集群 & Grid(rac)配置,反推创建过程(重要)。

    目前机器上,oracle都是安装好的,那么我们怎么知道,之前的安装过程大概是什么样子呢? 大致安装oracle集群的内容: 一.准备和配置: 1.网卡 2.ip资源 3.scanip 4.hosts ...

  9. ui-route的一般用法 ,比较简单。在平时项目也用到,但是我也要记下来,虽然是'借鉴的',取其精华

    这是个啥? ui-router是一个web客户端的路由解决方案.我觉得它最大的作用是将web界面的设计分块了. 分块分层 最初的web访问模型,是这样的: 我们访问page1,然后访问page2... ...

  10. Anaconda下安装Tensorflow、keras问题及解决办法

    这两天一直在跟tensorflow的错误日志作斗争!安装过程中出现各种问题,找资料,采坑,终于装好了,做个小总结! keras需要在TensorFlow之上才能运行,所以需要先安装TensorFlow ...