当前位置: 首页 > news >正文

swiper+fixed的错误,splice函数的使用,提取年月日substring

做项目时的一些问题

  • swiper+fixed
  • splice函数的使用
    • 重点在 alldata.splice(0, alldata.length, ...response.data.data);
      • splice
      • alldata.splice(0, alldata.length, ...response.data.data) 这行代码的功能
      • 为什么不直接赋值
  • 提取年月日 substring

swiper+fixed

项目中的一个错误:网页使用了swiper,同时某一个页面想实现左右分栏+中间悬浮div。此时中间的div不能使用fixed,因为这是相对于浏览器的,会导致页面错乱,其他swiper的item中也会出现这个div。
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>两栏布局和中间悬浮图片放大</title><style>body {margin: 0;padding: 0;display: flex;height: 100vh;}/* 左侧和右侧栏各占页面50% */.left, .right {width: 50%;height: 100%;}.left {background-color: #f8b400;}.right {background-color: #4caf50;}/* 中间的悬浮div */.center {position: absolute;width: 200px; /* 中间div的宽度 */height: 200px; /* 中间div的高度 */background-color: #ffffff;border: 2px solid #ccc;top: 50%; /* 垂直居中 */left: 50%; /* 水平居中 */margin-left: -100px; /* 中间div宽度的一半,用于精确居中 */margin-top: -100px;  /* 中间div高度的一半,用于精确居中 */box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);text-align: center;line-height: 200px; /* 使内部内容居中 */overflow: hidden; /* 保证图片放大时不超出div */}.center img {width: 100%;height: 100%;transition: transform 0.3s ease; /* 动画过渡 */}/* 鼠标悬浮时图片放大 */.center:hover img {transform: scale(1.2); /* 图片放大1.2倍 */}</style>
</head>
<body><div class="left">左侧栏</div><div class="right">右侧栏</div><div class="center"><img src="https://via.placeholder.com/200" alt="示例图片"></div>
</body>
</html>

splice函数的使用

在某个页面,我希望在onMounted时,发送axios请求,并把请求来的数组,渲染到页面上。

关键点

① 要用响应式数据

const alldata = reactive([]);

② 异步函数的调用

// 定义异步函数来获取数据
const getAllData = async () => {console.log('调用了');try {const response = await axios.get('/news/list');alldata.splice(0, alldata.length, ...response.data.data);console.log(response.data.data);} catch (error) {console.error('Error', error);}
};

重点在 alldata.splice(0, alldata.length, …response.data.data);

splice

splice 方法
JavaScript 数组的 splice 方法是一个非常强大的方法,用于添加、删除或替换数组中的元素。splice 方法可以接受多个参数:

第一个参数(0)指定修改数组的起始位置。
第二个参数(alldata.length)指定应该删除多少元素。
后面的参数是要添加到数组中的新元素。

alldata.splice(0, alldata.length, …response.data.data) 这行代码的功能

(1)清空数组 alldata(删除所有现有元素)。
(2)将从API获取的新数据(response.data.data)添加到清空后的数组中。

为什么不直接赋值

为什么使用 splice 而不是直接赋值?

在Vue中,直接赋值如 alldata = response.data.data; 会替换掉整个数组,这在某些情况下可能不会触发视图更新,因为Vue可能无法检测到数组内部元素的变动。使用 splice 方法可以确保Vue能够追踪到数组内部的变化,从而正确地更新视图。

③ 调用

 onMounted(async () => {await getAllData();console.log('alldata');console.log(alldata);});

提取年月日 substring

从字符串“2024-05-26T08:30:32.498Z”中分别提取出2024 05 26

let dateTimeStr = "2024-05-26T08:30:32.498Z";// 提取年
let year = dateTimeStr.substring(0, 4);// 提取月
let month = dateTimeStr.substring(5, 7);// 提取日
let day = dateTimeStr.substring(8, 10);console.log("Year:", year);
console.log("Month:", month);
console.log("Day:", day);

相关文章:

  • [每日一练]利用自连接实现数量查询
  • MySQL | excel数据输出insert语句
  • 第167天:应急响应-日志自动提取分析项目_ELK_Logkit_LogonTracer_Anolog等
  • 力扣随机一题——所有元音按顺序排序的最长字符串
  • 数据驱动农业——助力作物增产
  • 新书推荐——《Python贝叶斯深度学习》
  • 基于php的民宿预订管理系统
  • 计算机视觉学习---图像增强
  • 图像处理基础知识点简记
  • 什么是区块链桥?
  • 理解Python闭包概念
  • Windows下VScode快速配置OpenCV开发环境 【快乐篇】
  • Pytorch 学习手册
  • LeetCode 面试经典150题 69.x的平方根
  • SpringBoot整合JPA 基础使用
  • [译]Python中的类属性与实例属性的区别
  • Angular4 模板式表单用法以及验证
  • create-react-app做的留言板
  • EOS是什么
  • MySQL-事务管理(基础)
  • October CMS - 快速入门 9 Images And Galleries
  • php的插入排序,通过双层for循环
  • Python利用正则抓取网页内容保存到本地
  • rc-form之最单纯情况
  • REST架构的思考
  • Service Worker
  • ucore操作系统实验笔记 - 重新理解中断
  • 电商搜索引擎的架构设计和性能优化
  • 分布式事物理论与实践
  • 力扣(LeetCode)22
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 山寨一个 Promise
  • 使用common-codec进行md5加密
  • 怎样选择前端框架
  • Python 之网络式编程
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • #控制台大学课堂点名问题_课堂随机点名
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C语言)共用体union的用法举例
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二)fiber的基本认识
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (一)Linux+Windows下安装ffmpeg
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • .gitignore文件_Git:.gitignore
  • .Net 4.0并行库实用性演练
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .Net FrameWork总结
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例