小兔鲜02

news2024/12/23 0:46:29
elementplus自动按需引入

在这里插入图片描述

elementplus主题色定制

安装sass

npm install sass -D

要替换的主题色内容:

/* 只需要重写你需要的即可 */
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
  $colors: (
    'primary': (
      // 主色
      'base': #27ba9b,
    ),
    'success': (
      // 成功色
      'base': #1dc779,
    ),
    'warning': (
      // 警告色
      'base': #ffb302,
    ),
    'danger': (
      // 危险色
      'base': #e26237,
    ),
    'error': (
      // 错误色
      'base': #cf4444,
    ),
  )
);

vite配置:

  1. 告知elementplus引入的文件是 sass文件
    在这里插入图片描述

  2. 自动导入这个sass文件
    在这里插入图片描述

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'


// elementplus 按需导入
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  // plugins是vite的插件配置位置
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      // 将elementplus配置采用sass格式
      resolvers: [ElementPlusResolver({
        importStyle:"sass"
      })],
    }),
  ],
  resolve: {
    alias: {
      // 实际的路径转换
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  css:{
    preprocessorOptions:{
      scss:{
        additionalData:
        // 自动导入 定制好的scss
           `@use "@/styles/element/index.scss" as *;`
      }
    }
  }
})

重置样式
// 重置样式
* {
  box-sizing: border-box;
}

html {
  height: 100%;
  font-size: 14px;
}
body {
  height: 100%;
  color: #333;
  min-width: 1240px;
  font: 1em/1.4 'Microsoft Yahei', 'PingFang SC', 'Avenir', 'Segoe UI',
    'Hiragino Sans GB', 'STHeiti', 'Microsoft Sans Serif', 'WenQuanYi Micro Hei',
    sans-serif;
}
body,
ul,
h1,
h3,
h4,
p,
dl,
dd {
  padding: 0;
  margin: 0;
}
a {
  text-decoration: none;
  color: #333;
  outline: none;
}
i {
  font-style: normal;
}
input[type='text'],
input[type='search'],
input[type='password'],
input[type='checkbox'] {
  padding: 0;
  outline: none;
  border: none;
  -webkit-appearance: none;
  &::placeholder {
    color: #ccc;
  }
}
img {
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle;
  background: #ebebeb url('@/assets/images/200.png') no-repeat center / contain;
}
ul {
  list-style: none;
}

#app {
  background: #f5f5f5;
  user-select: none;
}

.container {
  width: 1240px;
  margin: 0 auto;
  position: relative;
}
.ellipsis {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.ellipsis-2 {
  word-break: break-all;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.fl {
  float: left;
}

.fr {
  float: right;
}

.clearfix:after {
  content: '.';
  display: block;
  visibility: hidden;
  height: 0;
  line-height: 0;
  clear: both;
}

// reset element
.el-breadcrumb__inner.is-link {
  font-weight: 400 !important;
}

sass文件自动导入公共变量,避免手动导入

sass文件可能会存一些共享颜色,等

$xtxColor: #27ba9b;
$helpColor: #e26237;
$sucColor: #1dc779;
$warnColor: #ffb302;
$priceColor: #cf4444;

在这里插入图片描述

字体图标引入

在这里插入图片描述

监听滚动距离,显示吸顶

定义好一个写好的nav,,,作为吸顶nav,,,当滚动条滚动到一定位置,,显示这个吸顶nav,,并一直吸顶,,当滚动条小于某个高度,,隐藏这个吸顶nav

const y = ref(0)
const handleScroll = ()=>{
  console.log(window.scrollY)
  y.value = window.scrollY
}
onMounted(()=>{
  window.addEventListener("scroll",handleScroll)
})
pinia共享导航数据
axios

axios-http.com

props 和 slot 写模板
自定义指令实现懒加载图片
app.direactive("lazy-img",(el,binding)=>{
	// el :绑定这个指令的 dom
	// binding :  这个指令绑定的值
})

懒加载图片,就是等图片进入可视区域之后再去加载图片,,
预先不设置src属性,,等图片进入可视区域之后,在设置src属性,去请求图片。。
js中可以使用Intersection Observer API 监测元素是否在视口区域,,,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<style>
    .content {
        height: 1500px;
        background-color: lightgrey;
        width: 1000px;
    }
    .target {
        margin: 1000px 0;
        padding: 20px;
        background-color: lightcoral;
        text-align: center;
    }
    .in-view {
        background-color: lightgreen;
    }
</style>
<div class="content">
    <div id="target" class="target">监测的目标元素</div>
</div>
<script>
    const observer= new IntersectionObserver((entries)=>{
        entries.forEach(entry=>{
            if (entry.isIntersecting){
                console.log("进入")
            }else{
                console.log("leave")
            }
        })
    })

    var element = document.querySelector("#target");
    observer.observe(element)
</script>
</body>
</html>

定义指令的时候,监测视口:

// 定义全局指令
app.directive("img-lazy",{
    mounted(el,binding){
        // el :指令绑定的那个元素
        // binding : 指令的等于号后面 的表达式值
        console.log(el,binding.value)

       const observer =  new IntersectionObserver((entries)=>{
            for (const entry of entries) {
                if (entry.isIntersecting){
                    // 进入了
                    console.log("进入了")
                    el.src = binding.value
                }
            }
        })


        observer.observe(el)

    }
})

图片加载完成后,存在重复监听,需要将监听移除掉

observer.unobserve(entry.target)
vue3插件

js代码不应该直接写在入口函数中,,可以使用插件形式,去执行这些js代码,,
定义一个插件:

export const lazyPlugin = {
    install(app){
        app.directive("img-lazy",(el,binding)=>{

            console.log(el,binding.value)

           const observer =   new IntersectionObserver((entries)=>{
               for (const entry of entries) {
                   if (entry.isIntersecting){
                       // 进去了
                       console.log("enter")
                       el.src = binding.value

                       // 监听完一次后,取消监听,,图片只需要加载一次
                       observer.unobserve(entry.target)
                   }
               }
           })

            observer.observe(el)
        })
    }
}

在main.js中导入插件:

import {lazyPlugin} from "@/directives/index.js";
app.use(lazyPlugin)
vue3使用路由参数
import {useRoute} from "vue-router"
const route = useRoute()

console.log(route.params.id)
router-link激活时设置样式名
          <RouterLink :to="`/category/${item.id}`" active-class="active">{{item.name}}</RouterLink> </li>

路由缓存问题

一个路由跳转到另一个路由的时候,如果是相同的组件会被复用,,,
解决:

  1. 不让组件复用,强制销毁重建,在路由出口添加一个key,破坏复用机制
<!--  二级路由出口-->
  <RouterView :key="$route.fullPath"/>

销毁重建会导致所有的请求都重新发送,,如果是复用的数据,就会存在资源浪费
2. 监听路由变化
onBeforeRouteUpdate((to,from)=>{}),router里面的钩子函数,,监测路由变化,,to是到哪个页面

import {onBeforeRouteUpdate} from "vue-router";
// 路由变化

onBeforeRouteUpdate((to, from, next)=>{
  console.log("路由变化了",to)
  getCategory(to.params.id)
})
业务代码拆分

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1843403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

lock-锁的概念

锁的简介 锁是计算机协调多个进程或线程并发访问某一资源的机制&#xff08;避免发生资源争抢&#xff09; 在并发环境下&#xff0c;多个线程会对同一个资源进行争抢&#xff0c;可能会导致数据不一致的问题。为了解决这一问题&#xff0c;需要通过一种抽象的锁来对资源进行…

第 402 场 LeetCode 周赛题解

A 构成整天的下标对数目 I 计数&#xff1a;遍历 h o u r s hours hours &#xff0c;记录 h o u r s [ i ] % 24 hours[i]\%24 hours[i]%24 的出现次数 class Solution {public:long long countCompleteDayPairs(vector<int>& hours) {vector<int> cnt(24);…

【内含优惠码】重磅发售!《2023年度中国量化投资白皮书》(纸质版)

这是可以公开了解量化行业图景的&#xff0c;为数不多资料。 简介 《2023年度中国量化投资白皮书》由宽邦科技、华泰证券、金融阶、华锐技术、AMD、阿里云、英迈中国等多家机构联合发起编写&#xff0c;并于2024年6月15日正式发布&#xff0c;全书公17万字6大章节勾勒最新量化…

【Unity | Editor强化工具】项目备忘录工具

经常会被美术和策划同事反复询问某几个问题&#xff0c;每次都要翻Wiki链接给他们&#xff0c;非常折磨人&#xff0c;所以做了个可以在Unity内部显示备忘录的小工具&#xff0c;能够减少一些查找成本&#xff08;另外我觉得&#xff0c;让他们养成查看Unity内触手可及的信息的…

thread model线程模型

Concurrency并发 vs. Parallelism执行 Many-to-One GNU Portable Threads 多对一即多个用户线程映射到单个内核线程 该模式用的少 一个线程阻塞会导致所有线程阻塞 多线程可能无法在多核系统上并行运行&#xff0c;因为同一时间内核中可能只有一个线程 Concurrent executio…

关于圆的方程

关于圆的方程 flyfish 几何定义 圆是平面上所有到一个固定点&#xff08;圆心&#xff09;距离相等的点的集合。 解析几何描述 设圆心位于点 ( h , k ) (h, k) (h,k)&#xff0c;半径为 r r r&#xff0c;那么对于圆上的任意一点 ( x , y ) (x, y) (x,y)&#xff0c;它…

如何把模糊的图片修复变清晰,怎么做?有那些方法?

模糊照片怎么修复清晰&#xff1f;有些照片可能会因为保存不当或其他原因而变得模糊&#xff0c;这些照片删掉又觉得可惜&#xff0c;那么如何让这些照片焕然一新呢&#xff1f;今天就给大家分享几种可以将这些珍贵的模糊照片修复为高清照片的方法。接下来&#xff0c;给大家演…

【算法专题--链表】删除排序链表中的重复元素 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 四、总结与提炼 五、共勉 一、前言 删除排序链表中的重复元素这道题&#xff0c;可以说是--链表专题--&#xff0c;最经典的一道题&#xff0c;也是在面试中频率最高的一道题目&#xff0c;通常在面试中&#xff0…

【Linux】I/O多路复用模型 select、poll、epoll

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;Linux系列专栏&#xff1a;Linux基础 &#x1f525; 给大家…

怎么将几段音频合并在一起,试试这几个音频拼接小妙招

怎么将多个音频合并在一起呢&#xff1f;音频是我们日常工作生活中常见的文件&#xff0c;音频与我们息息相关&#xff0c;无论你是音乐爱好者&#xff0c;还是喜欢记录生活中的声音&#xff0c;都离不开音频。因此我们会遇到关于很多音频剪辑的难题&#xff0c;就像今天小编给…

SpringBoot复习

第一章 SpringBoot开发入门 1.Springboot的优点。 ① 可快速构建独立的Spring应用。 ② 直接嵌入Tomcat、Jetty和Undertow服务器&#xff08;无须部署WAR文件&#xff09; ③ 通过依赖启动器简化构建配置 ④ 自动化配置Spring和第三方库 ⑤ 提供生产就绪功能 ⑥ 极少的代码生成…

Redis变慢了?之三

Redis变慢了&#xff1f;之三 Redis变慢了fork耗时优化方案 AOFAOF策略对性能影响 最后 Redis变慢了 Redis变慢上一篇文章地址&#xff1a;Redis变慢了&#xff1f;之二 这篇文章继续Redis变慢情况的分析。 fork耗时 在 Redis 中&#xff0c;fork 是一个非常重要的操作&…

ROS操作过程中的报错

文章目录 错误&#xff1a;E: Unable to locate package ros-noetic-desktop-full报错问题报错原因解决方法 错误2&#xff1a;ERROR: cannot download default source list from:报错问题错误原因解决办法 错误&#xff1a;E: Unable to locate package ros-noetic-desktop-fu…

Mysql 8.3.0 安装

Mysql 8.3.0 安装地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 下载链接&#xff1a;https://downloads.mysql.com/archives/get/p/23/file/mysql-8.3.0-linux-glibc2.28-x86_64.tar.xz 解压&#xff1a; tar -xvf mysql-8.3.0-linux-glib…

javaWeb项目-ssm+vue企业台账管理平台功能介绍

本项目源码&#xff1a;javaweb项目ssm-vue企业台账管理平台源码-说明文档资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboo…

源代码保密的七种有效方法分享

在当今数字化时代&#xff0c;访问安全和数据安全成为企业面临的重要挑战。传统的边界防御已经无法满足日益复杂的内网办公环境&#xff0c;层出不穷的攻击手段已经让市场单一的防御手段黔驴技穷。当企业面临越来越复杂的网络威胁和数据泄密风险时&#xff0c;更需要一种综合的…

新手必读:平面设计自学全攻略

据说平面设计的门槛很低&#xff0c;零基础也很容易上手。但是据我所知许多初学者在自学平面设计时面临以下瓶颈&#xff1a;为什么跟着大神自学平面设计帖子依旧学不会呢&#xff0c;明明报了许多平面设计自学课程&#xff0c;但仍然不会自主设计&#xff0c;初学者到底从哪里…

18 Shell编程规范与变量

目录 18.1 Shell脚本概述 18.1.1 Shell的作用 18.1.2 编写第一个Shell脚本 18.1.3 重定向与管道操作 18.2 Shell变量的作用、类型 18.2.1 自定义变量 18.2.2 特殊的Shell变量 18.1 Shell脚本概述 可以批量处理、自动化地完成一系列维护任务&#xff0c;大大减轻管理员的负担。…

音频——性能测试中的基本概念

文章目录 频率响应平均电平增益ADC 路径增益DAC 路径增益底噪信噪比总谐波失真+噪声(THD+N)延迟频率响应 对于音频设备,频率响应可以理解为音频设备对不同频率信号的处理或重现。对于音频信号频率,一般关注20Hz~20kHz范围。理想情况下,输入幅度相同的不同频率信号,过音频…

她经济和女性经济,女性消费力量的崛起

在当今这个数字化飞速发展的时代&#xff0c;"她经济"已经不再是一个简单的概念&#xff0c;而是一场正在上演的女性消费革命。 在最新的《QuestMobile 2024“她经济”洞察》报告中&#xff0c;为我们揭示了女性在移动互联网时代的独特地位和影响力。 首先&#xf…