开始

没有信息的情况下 ,希望现实提示信息。
image.png

ps切图

图片存放的路径:
课时33.封装无数据默认组件\封装无数据默认组件\static\common
image.png

image.png
alt+滚动图标放大图片进行切图
image.png
image.png

image.png
image.png
image.png
桌面切好的图片。
image.png
放在公共组件下
image.png

image.png

  1. <view class="nothing">
  2. <image src="../../static/common/nothing.png" mode="widthFix"></image>
  3. </view>

分别用template包起来
image.png

有数据就显示内容
image.png

image.png

  1. <template v-if="items.list.length>0">
  2. <!-- 图文列表 -->
  3. <block v-for="(item,index1) in items.list" :key="index1">
  4. <index-list :item="item" :index="index1"></index-list>
  5. </block>
  6. <!-- 上拉加载 -->
  7. <load-more :loadtext="items.loadtext"></load-more>
  8. </template>
  9. <template v-else>
  10. <view class="nothing">
  11. <image src="../../static/common/nothing.png" mode="widthFix"></image>
  12. </view>
  13. </template>

图片太大了。
image.png
稍微搞下图片的宽度
给它父元素一个flex布局,水平居中。
image.png

  1. <view class="nothing u-f-ajc">

image.png

绝对定位,并且上下左右都是0
image.png

  1. .nothing {
  2. background: #FFFFFF;
  3. position: absolute;
  4. top: 0;
  5. left: 0;
  6. right: 0;
  7. bottom: 0;
  8. }
  9. .nothing image{
  10. width: 60%;
  11. }

image.png

image.png
加上动画效果
image.png

封装组件

image.png
整块剪切进来
image.png

  1. <view class="nothing u-f-ajc animated fadeIn">
  2. <image src="../../static/common/nothing.png" mode="widthFix"></image>
  3. </view>

image.png
完整组件代码

  1. <template>
  2. <view class="nothing u-f-ajc animated fadeIn">
  3. <image src="../../static/common/nothing.png" mode="widthFix"></image>
  4. </view>
  5. </template>
  6. <script>
  7. </script>
  8. <style scoped>
  9. .nothing {
  10. background: #FFFFFF;
  11. position: absolute;
  12. top: 0;
  13. left: 0;
  14. right: 0;
  15. bottom: 0;
  16. }
  17. .nothing image{
  18. width: 50%;
  19. }
  20. </style>

image.png

  1. import noThing from '@/components/common/no-thing.vue';

别忘了还要注册一下组件。
image.png

image.png

结束