时下微信小程序开发框架中mpvue是主流的选择之一。其中,免不了还要使用部分小程序原生的组件。swiper组件几乎成为典型小程序界面的必备组成组件之一。但是,我在试用中遇到一个典型问题,很多相关网页中都没有给出明确的注意事项总结。在此文中,我主要强调一个值得注意的问题。

把原生组件swiper封装成一个SFC

为了突出问题,我给出了最大程度的简化,把原生组件swiper封装成一个SFC,文件名为SimpleSwiper.vue,代码如下:

<template><swiper :indicator-dots="true" :autoplay="true":interval="5000" :duration="900" :circular="true"><div v-for="(item,index) in imgUrls" :key="index"><swiper-item><image :src="item" class="slide-image"/></swiper-item></div></swiper>
</template>
<script>export default {name:"SimpleSwiper",props: {images: {type: Array}},data() {return {imgUrls: ['/static/images/1.png','/static/images/2.jpg']}}
}
</script>
<style scoped>.slide-image {width: 100%;height: 100%;}
</style>

在mpvue页面中使用SimpleSwiper组件

为了说明问题,也是尽量简化代码,如下展示的是文件index.vue的内容:

<template><div class="container8"><SimpleSwiper/></div>
</template><script>
import SimpleSwiper from "@/components/SimpleSwiper"
export default {components: {SimpleSwiper}
}
</script><style scoped>.container8 {height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: space-between;padding: 200rpx 0;box-sizing: border-box;}</style>

显示失败

使用上述引用方式使用SimpleSwiper组件,内容得不到任何显示。更麻烦的是,根本很难判断是哪里出了问题。

原因分析

在测试中,我把<div class="container8">这一行直接修改为<div>,结果一切显示很好,成功了!
那么,问题肯定出在样式的定义里面。经过初步分析,微信小程序的视图容器(view,scroll-view和swiper)默认都是dispaly:block方式。经进一步测试发现:小程序flex容器中不能包含block容器——不予显示。但是,如果把父级容器设置为block显示方式,则其中放置swiper没有问题。即是说,block布局中可以包含block布局的子组件。

补充

为了突出问题,上面代码使用硬编码方式,有兴趣的朋友可以进一步改进,以便在实际开发中使用之。另外,由于本人没有对微信小程序显示模式做详细分析,故上述结论中可能存在谬误,欢迎朋友们批评指正。

引用

1,https://www.jianshu.com/p/1fd1f129ee29
2,https://blog.csdn.net/wang_jingj/article/details/82760589
3,https://www.hishop.com.cn/xiaocx/show_58185.html

转载于:https://blog.51cto.com/zhuxianzhong/2333139

微信小程序原生组件swiper在mpvue工程中使用注意事项相关推荐

  1. 微信小程序原生上传图片封装

    资源参考 组件免费下载地址 概述 微信小程序原生上传图片功能封装,具体使用根据个人情况而定. 组件自定义属性与方法描述 isShow:布尔值,默认为true true:不显示上传图标 false:显示 ...

  2. 【微信小程序-原生开发】watch 的实现

    微信小程序-原生开发本身并没有 vue 中 watch 的功能,可以通过以下方式实现 定义监听器 utils\watch.js /*** 设置监听器*/ export function setWatc ...

  3. 【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)

    开始前,请先完成首页的开发,详见 [微信小程序-原生开发]实用教程05-首页(含自定义调试模式.插入图片.图文排版.底部留白.添加本地图片) https://blog.csdn.net/weixin_ ...

  4. 适配mpvue平台的的微信小程序日历组件mpvue-calendar

    mpvue-calendar 基于vue-calendar的适配mpvue平台的的微信小程序日历组件 预览 安装 npm i mpvue-calendar 使用 import Calendar fro ...

  5. 微信小程序原生表格组件

    cv大法:先找个差不多实现基本功能的组件 源代码:GitHub - zss823158062/senx-table: 微信小程序 表格组件 lrjTable 然后在上面做优化: 1.优化了按钮点击bu ...

  6. 5个受欢迎的微信小程序UI组件库

    开发微信小程序的过程中,选择一款好用的组件库,可以达到事半功倍的效果.自从微信小程序面世以来,不断有一些开源组件库出来,下面5款就是排名比较靠前,用户使用量与关注度比较高的小程序UI组件库.还没用到它 ...

  7. 微信小程序原生接入腾讯云im(单聊,列表,聊天界面,自定义消息,自动回复)

    微信小程序原生接入腾讯云im(单聊,列表,聊天界面,自定义消息,自动回复) 发送图片语音消息传送→ 文章目录 1.项目需求 2.参考文档 3.效果图 4.初始化 集成SDK 5.登录 6.会话列表 7 ...

  8. 5个微信小程序UI组件库

    小程序UI组件库 WeUI WXSS iView WeApp Vant Weapp (原ZanUI WeApp) MinUi Wux WeApp 此文仅为便于自己查找 原文链接:https://www ...

  9. 6个最优秀的微信小程序UI组件库

    开发微信小程序的过程中,选择一款好用的组件库,可以达到事半功倍的效果.自从微信小程序面世以来,不断有一些开源组件库出来,下面6款就是排名比较靠前,用户使用量与关注度比较高的小程序UI组件库.还没用到它 ...

最新文章

  1. linux 精简开机启动服务,打造个人专属的微型Linux--启动原理篇
  2. 对Dev的GridControl/GridView控件进行分组并展开操作
  3. qtp启动java程序_转: QTP六脉神剑之调用Java程序
  4. 工作90:富文本编辑器使用篇wangedit
  5. C++ string 介绍
  6. linux 15秒 搭建VSFTPD文件服务器
  7. 数据库利器Navicat最全快捷键整理
  8. C++类型转换实现不同类型相加【复数与double类型相加】
  9. 2022-03-28 术语MES、WMS
  10. weka下载安装以及源码运行
  11. CentOS7安装显卡驱动
  12. 基于Vision Transformer的视频哈希检索识别虚假视频
  13. 地级市面板数据一(2000-2019):国民经济核算+人口结构+各行业从业人员(stata版)
  14. 洛谷 P1548 [NOIP1997 普及组] 棋盘问题
  15. 飞卡日常进度之K60DN/K60FX/K66对比
  16. [USACO13FEB]拖拉机Tractor
  17. 【线代】 线性方程组的解
  18. win10固态硬盘分区 整数_一台机器两个系统,工作生活分隔开——安装win10和Linux双系统...
  19. python中英文书籍汇总,总有一本是你想要的
  20. SD卡照片删除怎么恢复?教程全解

热门文章

  1. linux缓存限制,如何限制复制使用的缓存,以便仍有其他缓存可用的内存?_linux_开发99编程知识库...
  2. java接口如何定义常量 c_java接口定义常量研究
  3. pytorch环境下“No module named SimpleITK”的解决办法
  4. FPGA之道(49)DCM与PLL
  5. 【 FPGA 】超声波测距小实验(一)
  6. 几个判断时不变系统的精彩例子
  7. JavaScript的使用
  8. 互联网寒冬前端社招面试
  9. URL解析-URLComponents
  10. 取余运算 C和python的区别