普通视图

发现新文章,点击刷新页面。
昨天 — 2025年11月21日首页

uni-app D4 实战(小兔鲜)

2025年11月21日 17:55

1. 首页-封装通用轮播组件提高复用

image.png

1.1 轮播图的静态结构(直接复制就好)

<script setup lang="ts">
import { ref } from 'vue'

const activeIndex = ref(0)
</script>

<template>
  <view class="carousel">
    <swiper :circular="true" :autoplay="false" :interval="3000">
      <swiper-item>
        <navigator url="/pages/index/index" hover-class="none" class="navigator">
          <image
            mode="aspectFill"
            class="image"
            src="https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/slider_1.jpg"
          ></image>
        </navigator>
      </swiper-item>
      <swiper-item>
        <navigator url="/pages/index/index" hover-class="none" class="navigator">
          <image
            mode="aspectFill"
            class="image"
            src="https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/slider_2.jpg"
          ></image>
        </navigator>
      </swiper-item>
      <swiper-item>
        <navigator url="/pages/index/index" hover-class="none" class="navigator">
          <image
            mode="aspectFill"
            class="image"
            src="https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/uploads/slider_3.jpg"
          ></image>
        </navigator>
      </swiper-item>
    </swiper>
    <!-- 指示点 -->
    <view class="indicator">
      <text
        v-for="(item, index) in 3"
        :key="item"
        class="dot"
        :class="{ active: index === activeIndex }"
      ></text>
    </view>
  </view>
</template>

<style lang="scss">
/* 轮播图 */
.carousel {
  height: 280rpx;
  position: relative;
  overflow: hidden;
  transform: translateY(0);
  background-color: #efefef;
  .indicator {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 16rpx;
    display: flex;
    justify-content: center;
    .dot {
      width: 30rpx;
      height: 6rpx;
      margin: 0 8rpx;
      border-radius: 6rpx;
      background-color: rgba(255, 255, 255, 0.4);
    }
    .active {
      background-color: #fff;
    }
  }
  .navigator,
  .image {
    width: 100%;
    height: 100%;
  }
}
</style>

1.2 修改一下组件引入规则(pages.json)

image.png

1.2.1 添加组件类型声明

image.png

image.png

1.3 轮播图的dots实现动态

image.png

image.png 结果:

image.png

image.png

image.png **本次练习重点知识点: ** image.png

1.4 首页-获取轮播图数据

image.png

昨天以前首页

uni-app D3实战(小兔仙)

2025年11月18日 23:50

1.pages.json和tabBar案例

1.1 文件介绍

image.png

1.2 做一下pages.json的路由和tabbar配置:

{
  "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    },
    {
      "path": "pages/my/my",
      "style": {
        "navigationBarTitleText": "我的"
      }
    }
  ],
  // 全局修改
  "globalStyle": {
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "uni-app",
    "navigationBarBackgroundColor": "#1bac9b",
    "backgroundColor": "#F8F8F8"
  },
  "tabBar": {
    // 修改选中时候的颜色
    "selectedColor": "#1bac9b",
    "list": [{
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath": "/static/tabs/home_default.png",
        "selectedIconPath": "/static/tabs/home_selected.png"
      },
      {
        "pagePath": "pages/my/my",
        "text": "我的",
        "iconPath": "/static/tabs/user_default.png",
        "selectedIconPath": "/static/tabs/user_selected.png"
      }
    ]
  },
  "uniIdRouter": {}
}

效果:

image.png

1.3总结和注意事项:

image.png

2. uni-app和原生小程序开发的区别

2.1 属性绑定的书写区别

2.2 事件绑定的区别

2.3 支持Vue常用指令

大致: image.png

❌
❌