vue电商项目归纳总结(1)

简介: vue电商项目归纳总结(1)

1.吸顶效果


手写实现

思路:利用原生js的API和css的固定定位样式实现吸顶

核心步骤: 

01.获取滚动条滚动距离

document.documentElement.scrollTop

02. 事件监听

window.addEventListener('scroll', update)

03.先写一个类名使用固定定位及在钩子函数里监听和销毁

04简单的代码实现:

<template>
<nav><div :class="{show:y>78}">测试吸顶效果</div></nav>
</template>
<script>
import { onMounted, onUnmounted, ref } from 'vue'
export default {
  setup () {
    // 定义一个响应式数据
    const y = ref(0)
    const update = () => {
      y.value = document.documentElement.scrollTop
      console.log(y.value) // Y 获取滚动距离
    }
     //钩子函数(dom)页面加载时监听滚动距离
    onMounted(() => { window.addEventListener('scroll', update) })
       //钩子函数销毁定时器
    onUnmounted(() => { window.removeEventListener('scroll', update) })
    return { y }
  }
}
</script>
<style scoped>
nav{
  height: 3000px;
}
div{
  display: none;
  height: 50px;
  border: orange;
  background-color: skyblue;
  text-align: center;
  font-size: 20px;
}
.aaa{
  display: block;
  height: 300px;
  background-color: skyblue;
}
</style>

image.png

2.组装数据


业务场景:

利用v-for渲染的时候,有时候数据并不是只有一个数组,有可能是嵌套的,需要我们组装数据,如下图所示:

image.png

思路:写好我们想要的结构,然后一一赋值

image.png

image.png

注意点:1.map返回新数组list

               2.起名(如id和name要和后台的数据对应)

               3.拿到数据后v-for渲染,用然后children里面的数据 可以v-for item(父数据的每一项)

3.轮播图


业务场景:vue3手写轮播图

思路:

1.制作静态结构

2.传入图片之后渲染(通过ajax获取)

3.逻辑功能实现(渲染后的是静态的第一张图片),需要实现自动轮播、鼠标进去离开暂停开启效果 ,清理定时器

因为轮播图以后可能要用,所以注册全局组件(导入,在install里定义)

引入轮播图组件,几个小按钮

总体来言,还算简单,放出各功能核心代码:

自动轮播实现:利用v-for的下标和自己定义的变量相等时为true,控制样式(图片的显示隐藏)

 let timer = null
+    const autoPlayFn = () => {
+      clearInterval(timer)
+      timer = setInterval(() => {
+        index.value++
+        if (index.value >= props.sliders.length) {
+          index.value = 0
+        }
+      }, props.duration)
+    }
+    watch(() => props.sliders, (newVal) => {
+      // 有数据&开启自动播放,才调用自动播放函数
+      if (newVal.length && props.autoPlay) {
+        index.value = 0
+        autoPlayFn()
+      }
+    }, { immediate: true })
+

鼠标进入离开暂停 :利用鼠标进入时间@mouseenter事件和@mouseleave事件控制定时器(清除)

clearInterval(定时器ID)

销毁定时器:如果不销毁一直监听,容易出bug

1. // 组件销毁,清理定时器
2. onUnmounted(() => { clearInterval(timer)})



相关文章
|
28天前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
1月前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
3天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
1月前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
36 1
vue学习第一章
|
1月前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
27 1
vue学习第三章
|
1月前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
35 1
vue学习第四章
|
28天前
|
JavaScript 前端开发 开发者
Vue是如何劫持响应式对象的
Vue是如何劫持响应式对象的
25 1
|
28天前
|
JavaScript 前端开发 API
介绍一下Vue中的响应式原理
介绍一下Vue中的响应式原理
30 1
|
28天前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
28天前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能