项目中的一些问题(补充)

描述问题

轮播****图循环异常
  • 你想要什么效果

  • 请求完接口数据后,数据渲染为轮播图,而且轮播图能循环播放

  • 哪个地方不是你预期的效果

  • 请求完接口数据后,轮播图也能正常轮播,但是播放到最后一幅后,不再循环播放

解决方案

<swiper>组件上添加 v-if="swiperList.length"

分析原理

  • 如果没有加 v-if

  • 在接口数据到来之前,swiper已经初始化,此时数据为[], loop选项是针对空数据的循环控制,

而获取数据之后,虽然触发了视图更新,但只更新<swiper-slide>,而没有更新swiper配置,所以循环失效

  • 如果加了v-if

  • 在接口数据到来之前,因为swiper上有v-if的判断,此时数据为[],所以swiper组件根本没有初始化。而获取数据后,v-if判断为真,引时触发视图更新,就是针对所有图片的loop设置

vue3项目开发中注意事项

**配置css和js

  1. 安装重置样式normalize.css
Plain 复制代码
npm i normalize.css
  1. 移动端适配js

    复制flexible.js到src/assets文件夹中

  2. 引入图标字体

    在assets/fonts中存入图标字体文件

    在assets/css中存入iconfont.css, 并修正路径

  3. 定义全局css

    在assets/css中创建global.css,定义全局样式

  4. 在main.js中引入以下文件 ,以便全局使用

JavaScript 复制代码
// 引入重置样式
import 'normalize.css'
import './assets/css/global.css'
import './assets/css/iconfont.css'
// 引入rem适配的js
import './assets/flexible'
  1. 修改px-to-rem插件的配置

    基准font-size: 75

    规定屏幕宽度: 750

  2. App.vue的style标签中,去掉scoped属性

  3. 在任意组件中使用图标字体

HTML 复制代码
<i class="iconfont icon-kefu"></i>

处理本地静态资源

HTML 复制代码
<div class="logo">
    <p><button>切换图片</button></p>
    <p><img :src="url" alt=""></p>
    <!-- <p><img src="../../../assets/img/m_hualogo.png" alt=""></p> -->
 </div>
JavaScript 复制代码
<script>
//引用本地静态资源模块
import logo from '../../../assets/img/m_hualogo.png'
export default {
    data() {
        return {
            //引用本地静态资源,不能使用下面的方式
            // url: '../../../assets/img/m_hualogo.png'
            url: logo,
            // 线上地址有效
            // url: 'https://m.hua.com/content/vue/login/static/img/m_hualogo.png'
        }
    }
}
</script>

拼接

HTML 复制代码
<script setup>
   let imgurl = 'baidu_logo.png';
   var icon = new URL(`../assets/imgs/${imgurl}`, import.meta.url)
   
   
   change(){
        // 2. 使用当前资源
        // this.url = logo;
        this.url = new URL(`../../assets/images/m_home_logo.png`, import.meta.url);
    }
</script>
<template>
    <div class="imgs">
     <img :src=icon alt="">
    </div>
</template>

vite 中使用 @ ,配置路径别名

修改vite.config.js

JavaScript 复制代码
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import path from 'path'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    //启动热更新
    hmr: true,
  },
  resolve: {
    // 配置路径别名
    alias: {
      '@': path.resolve(__dirname, './src'),
    },
  },
});

Sass****的使用

  1. 全局引入****sass
  • src/assets/scss/common.scss
CSS 复制代码
$$green: #0f0;
ul,li {
    list-style: none;
    background-color: $$green;
}
  • 在main.js中引入
JavaScript 复制代码
import "@/assets/scss/common.scss"
  1. 在指定组件中引入****sass
  • src/assets/scss/variables.scss (定义全量)
CSS 复制代码
$bg: rgb(17, 24, 152);
  • 在组件中引入
CSS 复制代码
<style lang="scss">
    @import "./assets/scss/variables.scss";
    
    $light: #f00;
        .app {
          width: 5rem;
          border: 1px solid $
    light;
      background-color: $bg;
    }
</style>
相关推荐
weixin_45776000几秒前
基于 YOLO11-OBB 与 LPRNet ONNX 的车牌定位识别桌面系统实践
人工智能·python·车牌识别·yolo11
Autumn_ing1 分钟前
2026实测:这5款AI生成UI工具支持Shadcn UI/Ant Design组件库
人工智能·ui·设计模式·aigc·设计规范
Mike_6663 分钟前
摩尔线程AB100安装torch环境
人工智能·深度学习·ffmpeg·aarch64·摩尔线程·musa
无心水3 分钟前
【Hermes:进阶调优与性能优化】41、模型选择策略:OpenRouter 多模型切换与成本优化
人工智能·性能优化·mcp协议·openclaw·养龙虾·hermes·honcho
子午4 分钟前
道路车辆检测与计数系统~Python+YOLOV8算法+深度学习+人工智能+Web可视化界面
人工智能·python·yolo
yuanpan5 分钟前
Python + Selenium 浏览器自动化测试与网页自动登录
开发语言·python·selenium
周有贵6 分钟前
AI视角下广电转型新探索:GEO技术与金鹰卡通初步接洽,解锁传媒AI融合新可能
大数据·人工智能·传媒
2601_9577867713 分钟前
AI 原生营销矩阵系统:底层安全架构与多模态内容生产技术实现
人工智能·矩阵·安全架构
沪漂阿龙13 分钟前
字节跳动大模型面试题深度拆解:项目深挖、SFT 与 RLHF、Claude Code、记忆机制、并发锁与手撕题全攻略
人工智能·面试
辞忧九千七15 分钟前
前后端分离架构实战与项目落地:AI智能学习笔记管理系统
python·html·axios·css3·fastapi·dify