需求实战一

效果展示

代码展示

<template>
<div class="home-component">
<div class="progress-container">
<a-progress type="circle" :percent="number" />
</div>
<ARow> <div class="button-container">
<a-button type="primary" @click="addNumber">增加数值</a-button>
</div>
&nbsp
&nbsp
&nbsp
<div class="button-container">
<a-button type="primary" @click="minNumber">减少数值</a-button>
</div>
</ARow>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const number = ref(80);
const addNumber = () => {
number.value = number.value + 10;
};
const minNumber = () => {
number.value = number.value - 10;
};
</script>
<style scoped>
.home-component {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.progress-container {
padding: 30px;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.2);
}
100% {
transform: scale(1);
}
}
.button-container {
padding: 30px 0;
}
.button-container a-button {
color: #fff;
border: none;
animation: bounce 1s infinite;
}
@keyframes bounce {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(-10px);
}
}
/* Additional Effects and Styles */
.progress-container {
background-color: #f2f2f2;
border-radius: 50%;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.button-container {
display: flex;
justify-content: center;
}
.button-container a-button {
padding: 10px 20px;
font-size: 16px;
font-weight: bold;
text-transform: uppercase;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
</style>

代码解读

这段代码是一个Vue组件的模板,用于展示一个带有进度条和增减按钮的页面组件。下面是对代码的解读:
 
1. <template> 标签中定义了组件的HTML结构。
   - home-component 类名的 <div> 元素是整个组件的容器,设置了居中对齐和垂直居中。
   - progress-container 类名的 <div> 元素是进度条的容器,设置了内边距和一个动画效果。
   - <a-progress> 是Ant Design Vue库中的进度条组件,通过 :percent 属性绑定了一个名为 number 的响应式数据。
   - <ARow> 是Ant Design Vue库中的布局组件,用于创建一个行容器。
 
2. <script setup> 标签中定义了组件的逻辑部分。
   - import { ref } from 'vue' 导入了Vue的 ref 函数,用于创建响应式数据。
   - const number = ref(80) 创建了一个名为 number 的响应式数据,初始值为80。
   - const addNumber 是一个箭头函数,用于增加 number 的值。
   - const minNumber 是一个箭头函数,用于减少 number 的值。
 
3. <style scoped> 标签中定义了组件的样式。
   - .home-component 类名设置了容器的样式,使其居中对齐和垂直居中。
   - .progress-container 类名设置了进度条容器的样式,包括内边距和一个动画效果。
   - .button-container 类名设置了按钮容器的样式,包括内边距和一个动画效果。
   - .button-container a-button 类名设置了按钮的样式,包括颜色、边框和一个动画效果。
 
这段代码的作用是创建一个带有进度条和增减按钮的页面组件,用户可以通过点击按钮来增加或减少进度条的数值。

需求实战二

效果展示

代码展示

<template>
<div class="home-component">
<div class="progress-container">
<a-progress type="circle" :percent="number" />
</div>
<ARow>
<ACol span="10">
<div class="button-container">
<a-button class="increase-button" type="primary" @click="addNumber">增加数值</a-button>
</div>
</ACol>
<ACol span="4">
</ACol>
<ACol span="10"> <div class="button-container">
<a-button class="decrease-button" type="primary" @click="minNumber">减少数值</a-button>
</div>
</ACol>
</ARow>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const number = ref(80);
const addNumber = () => {
number.value = number.value + 10;
};
const minNumber = () => {
number.value = number.value - 10;
};
</script>
<style scoped>
.home-component {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.progress-container {
padding: 30px;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.2);
}
100% {
transform: scale(1);
}
}
.button-container {
padding: 30px 0;
}
@keyframes bounce {
0%,
100% {
transform: translateY(0);
}
50% {
transform: translateY(-10px);
}
}
/* Additional Effects and Styles */
.progress-container {
background-color: #f2f2f2;
border-radius: 50%;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
animation: pulse 2s infinite, bounce 2s infinite;
}
.button-container {
display: flex;
justify-content: center;
}
.increase-button {
font-size: 16px;
font-weight: bold;
text-transform: uppercase;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
transition: background-color 0.3s, transform 0.3s;
animation: bounce 2s infinite;
}
.increase-button:hover {
background-color: #38b2ac;
transform: scale(1.1);
}
.decrease-button {
font-size: 16px;
font-weight: bold;
text-transform: uppercase;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
transition: background-color 0.3s, transform 0.3s;
animation: bounce 2s infinite;
}
.decrease-button:hover {
background-color: #eb5766;
transform: scale(1.1);
}
</style>

代码解读

这段代码是一个Vue组件的模板,用于展示一个带有进度条和增减按钮的页面组件。下面是对代码的解读:
 
1. <template> 标签中定义了组件的HTML结构。
   - home-component 类名的 <div> 元素是整个组件的容器,设置了居中对齐和垂直居中。
   - progress-container 类名的 <div> 元素是进度条的容器,设置了内边距和一个动画效果。
   - <a-progress> 是Ant Design Vue库中的进度条组件,通过 :percent 属性绑定了一个名为 number 的响应式数据。
   - <ARow> 是Ant Design Vue库中的布局组件,用于创建一个行容器。
   - <ACol> 是Ant Design Vue库中的布局组件,用于创建一个列容器。
 
2. <script setup> 标签中定义了组件的逻辑部分。
   - import { ref } from 'vue' 导入了Vue的 ref 函数,用于创建响应式数据。
   - const number = ref(80) 创建了一个名为 number 的响应式数据,初始值为80。
   - const addNumber 是一个箭头函数,用于增加 number 的值。
   - const minNumber 是一个箭头函数,用于减少 number 的值。
 
3. <style scoped> 标签中定义了组件的样式。
   - .home-component 类名设置了容器的样式,使其居中对齐和垂直居中。
   - .progress-container 类名设置了进度条容器的样式,包括内边距和一个动画效果。
   - .button-container 类名设置了按钮容器的样式,包括内边距。
   - .increase-button 类名设置了增加按钮的样式,包括字体大小、字体粗细、文本转换和一个动画效果。
   - .decrease-button 类名设置了减少按钮的样式,包括字体大小、字体粗细、文本转换和一个动画效果。
 
这段代码的作用是创建一个带有进度条和增减按钮的页面组件,用户可以通过点击按钮来增加或减少进度条的数值。进度条容器和按钮容器都设置了动画效果,增加按钮在鼠标悬停时会有背景颜色和缩放的变化,减少按钮也有类似的效果。

需求实战三

效果展示

代码展示

<template>
<div class="home-component">
<div class="progress-container"> <a-progress type="circle" :percent="number" strokeColor="#38b2ac" strokeWidth="10"/>
</div>
<ARow>
<ACol span="10">
<div class="button-container">
<a-button class="increase-button" type="primary" @click="addNumber">增加数值</a-button>
</div>
</ACol>
<ACol span="4">
</ACol>
<ACol span="10">
<div class="button-container">
<a-button class="decrease-button" type="primary" @click="minNumber">减少数值</a-button>
</div>
</ACol>
</ARow>
</div>
</template> <script setup lang="ts">
import { ref } from 'vue';
const number = ref(80);
const addNumber = () => {
number.value = (number.value + 10) % 100;
};
const minNumber = () => {
number.value = (number.value - 10 > 0) ? (number.value - 10) : 0;
};
</script> <style scoped>
.home-component {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center; }
.progress-container {
position: relative;
padding: 30px;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.05);
}
100% {
transform: scale(1);
}
}
.button-container {
display: flex;
justify-content: center;
padding: 30px 0;
animation: bounce 2s infinite;
animation-delay: 1s;
}
.increase-button,
.decrease-button {
font-size: 16px;
font-weight: bold;
text-transform: uppercase;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
border: none;
transition: all 0.3s;
border-radius: 5px;
}
.increase-button {
background-color: #38b2ac;
margin-right: 10px;
}
.decrease-button {
background-color: #eb5766;
margin-left: 10px;
}
.increase-button:hover,
.decrease-button:hover {
transform: scale(1.05);
box-shadow: 0 2px 15px rgba(0, 0, 0, 0.4);
}
</style>

代码解释

这段代码是一个Vue组件的模板,用于展示一个带有自定义样式的进度条和增减按钮的页面组件。下面是对代码的解读:
 
1. <template> 标签中定义了组件的HTML结构。
   - home-component 类名的 <div> 元素是整个组件的容器,设置了居中对齐和垂直居中。
   - progress-container 类名的 <div> 元素是进度条的容器,设置了内边距和一个动画效果。
   - <a-progress> 是Ant Design Vue库中的进度条组件,通过 :percent 属性绑定了一个名为 number 的响应式数据。strokeColor 属性设置了进度条的颜色,strokeWidth 属性设置了进度条的宽度。
   - <ARow> 是Ant Design Vue库中的布局组件,用于创建一个行容器。
   - <ACol> 是Ant Design Vue库中的布局组件,用于创建一个列容器。
 
2. <script setup> 标签中定义了组件的逻辑部分。
   - import { ref } from 'vue' 导入了Vue的 ref 函数,用于创建响应式数据。
   - const number = ref(80) 创建了一个名为 number 的响应式数据,初始值为80。
   - const addNumber 是一个箭头函数,用于增加 number 的值。增加后的值通过取模运算限制在0到100之间。
   - const minNumber 是一个箭头函数,用于减少 number 的值。减少后的值通过判断是否小于0来限制在0以上。
 
3. <style scoped> 标签中定义了组件的样式。
   - .home-component 类名设置了容器的样式,使其居中对齐和垂直居中。
   - .progress-container 类名设置了进度条容器的样式,包括内边距和一个动画效果。
   - .button-container 类名设置了按钮容器的样式,包括内边距和一个动画效果。
   - .increase-button 和 .decrease-button 类名设置了增加按钮和减少按钮的样式,包括字体大小、字体粗细、文本转换、背景颜色、边框、过渡效果和边框半径。
 
这段代码的作用是创建一个带有自定义样式的进度条和增减按钮的页面组件。进度条的颜色和宽度可以通过属性进行自定义,增加和减少按钮有鼠标悬停时的缩放和阴影效果。

需求实战四

效果展示

代码展示

<template>
<div class="home-component">
<div class="progress-container">
<a-progress type="circle" :percent="number" :strokeColor="progressColor" strokeWidth="10"/>
</div>
<ARow>
<ACol span="10">
<div class="button-container">
<a-button class="increase-button" type="primary" @click="addNumber">增加数值</a-button>
</div>
</ACol>
<ACol span="4"></ACol>
<ACol span="10">
<div class="button-container">
<a-button class="decrease-button" type="primary" @click="minNumber">减少数值</a-button>
</div>
</ACol>
</ARow>
</div>
</template>
<script setup lang="ts">
import { ref, computed } from 'vue';
const number = ref(80);
const addNumber = () => {
number.value = (number.value + 10) % 100;
};
const minNumber = () => {
number.value = number.value - 10 > 0 ? number.value - 10 : 0;
};
const progressColor = computed(() => {
return number.value > 50 ? '#38b2ac' : '#eb5766';
});
</script>
<style scoped>
.home-component {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.progress-container {
position: relative;
padding: 30px;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
transform: scale(1);
}
50% {
transform: scale(1.05);
}
100% {
transform: scale(1);
}
}
.button-container {
display: flex;
justify-content: center;
padding: 30px 0;
animation: bounce 2s infinite;
animation-delay: 1s;
}
.increase-button,
.decrease-button {
font-size: 16px;
font-weight: bold;
text-transform: uppercase;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
border: none;
transform: scale(1.05) rotate(360deg);
transition: transform 1s;
border-radius: 5px;
}
.increase-button {
background-color: #38b2ac;
margin-right: 10px;
}
.decrease-button {
background-color: #eb5766;
margin-left: 10px;
}
.increase-button:hover,
.decrease-button:hover {
transform: scale(1.05);
box-shadow: 0 2px 15px rgba(0, 0, 0, 0.4);
}
.progress-container {
background-image: -webkit-linear-gradient(left, #38b2ac, #eb5766);
}
</style>

代码解读

这段代码是一个Vue组件的模板,用于展示一个带有自定义样式的进度条和增减按钮的页面组件。下面是对代码的解读:
 
1. <template> 标签中定义了组件的HTML结构。
   - home-component 类名的 <div> 元素是整个组件的容器,设置了居中对齐和垂直居中。
   - progress-container 类名的 <div> 元素是进度条的容器,设置了内边距和一个动画效果。
   - <a-progress> 是Ant Design Vue库中的进度条组件,通过 :percent 属性绑定了一个名为 number 的响应式数据。strokeColor 属性通过计算属性 progressColor 来动态设置进度条的颜色,strokeWidth 属性设置了进度条的宽度。
   - <ARow> 是Ant Design Vue库中的布局组件,用于创建一个行容器。
   - <ACol> 是Ant Design Vue库中的布局组件,用于创建一个列容器。
 
2. <script setup> 标签中定义了组件的逻辑部分。
   - import { ref, computed } from 'vue' 导入了Vue的 ref 和 computed 函数,用于创建响应式数据和计算属性。
   - const number = ref(80) 创建了一个名为 number 的响应式数据,初始值为80。
   - const addNumber 是一个箭头函数,用于增加 number 的值。增加后的值通过取模运算限制在0到100之间。
   - const minNumber 是一个箭头函数,用于减少 number 的值。减少后的值通过判断是否小于0来限制在0以上。
   - const progressColor 是一个计算属性,根据 number 的值动态返回进度条的颜色。
 
3. <style scoped> 标签中定义了组件的样式。
   - .home-component 类名设置了容器的样式,使其居中对齐和垂直居中。
   - .progress-container 类名设置了进度条容器的样式,包括内边距和一个动画效果。
   - .button-container 类名设置了按钮容器的样式,包括内边距和一个动画效果。
   - .increase-button 和 .decrease-button 类名设置了增加按钮和减少按钮的样式,包括字体大小、字体粗细、文本转换、背景颜色、边框、过渡效果和边框半径。
   - .progress-container 类名设置了进度条容器的背景渐变色。
 
这段代码的作用是创建一个带有自定义样式的进度条和增减按钮的页面组件。进度条的颜色根据进度值动态变化,增加和减少按钮有鼠标悬停时的缩放和阴影效果。进度条容器的背景使用了渐变色。你可以根据这段代码的解读来写博客,介绍这个组件的功能和实现原理。

【技术实战】Vue技术实战【五】的更多相关文章

  1. Vue应用框架整合与实战--Vue技术生态圈篇

    实用框架以及工具 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 Element-UI ★13489 - 饿了么出品的Vue2的web UI工具套件 Vux ★8133 ...

  2. 快读《ASP.NET Core技术内幕与项目实战》EFCore2.5:集合查询原理揭秘(IQueryable和IEnumerable)

    本节内容,涉及4.6(P116-P130).主要NuGet包:如前述章节 一.LINQ和EFCore的集合查询扩展方法的区别 1.LINQ和EFCore中的集合查询扩展方法,虽然命名和使用完全一样,都 ...

  3. 《ASP.NET Core技术内幕与项目实战》精简集-目录

    本系列是杨中科2022年最新作品<ASP.NET Core技术内幕与项目实战>及B站配套视频(强插点赞)的精简集,是一个读书笔记.总结和提炼了主要知识点,遵守代码优先原则,以利于快速复习和 ...

  4. 躬身入局,干货分享,2023年春招后端技术岗(Python)面试实战教程,Offer今始为君发

    早春二月,研发倍忙,杂花生树,群鸥竟飞.为什么?因为春季招聘,无论是应届生,还是职场老鸟,都在摩拳擦掌,秣马厉兵,准备在面试场上一较身手,既分高下,也决Offer,本次我们打响春招第一炮,躬身入局,让 ...

  5. 深度解析SDN——利益、战略、技术、实践(实战派专家力作,业内众多专家推荐)

    深度解析SDN——利益.战略.技术.实践(实战派专家力作,业内众多专家推荐) 张卫峰 编   ISBN 978-7-121-21821-7 2013年11月出版 定价:59.00元 232页 16开 ...

  6. 基于TC技术的网络流量控制实战

    本文转载在:http://server.it168.com/a2010/0426/878/000000878406.shtml 基于TC技术的网络流量控制实战 650) this.width=650; ...

  7. 超级干货:动态防御WAF技术原理及编程实战!

    本文带给大家的内容是动态防御WAF的技术原理及编程实战. 将通过介绍ShareWAF的核心技术点,向大家展示动态防御的优势.实现思路,并以编程实战的方式向大家展示如何在WAF产品开发过程中应用动态防御 ...

  8. 简读《ASP.NET Core技术内幕与项目实战》之3:配置

    特别说明:1.本系列内容主要基于杨中科老师的书籍<ASP.NET Core技术内幕与项目实战>及配套的B站视频视频教程,同时会增加极少部分的小知识点2.本系列教程主要目的是提炼知识点,追求 ...

  9. 快读《ASP.NET Core技术内幕与项目实战》WebApi3.1:WebApi最佳实践

    本节内容,涉及到6.1-6.6(P155-182),以WebApi说明为主.主要NuGet包:无 一.创建WebApi的最佳实践,综合了RPC和Restful两种风格的特点 1 //定义Person类 ...

  10. 从开发一款基于Vue技术栈的全栈热重载生产环境脚手架,我学到了什么

    浏览文章前 这一期,我分享给大家三点看源码的小技巧,这也是从别的大佬那总结的. 被反复使用的代码 这样的代码是一个软件的重点函数,一个大神的写法有很多精华值得学习. 穿越时间的代码 如果一段代码10年 ...

随机推荐

  1. YOLO1论文中文版

    文章目录 YOLO1中文版 摘要 1. 引言 2. 统一检测 2.1 网络设计 2.2 训练 2.3 推断 2.4 YOLO的限制 3. 与其它检测系统的比较 4. 实验 4. 1 与其它实时系统的比 ...

  2. OpenCV-Python 中文教程

    OpenCV-Python 中文教程 目录 I 走进 OpenCV 关于 OpenCV-Python 教程 在 Windows 上安装 OpenCV-Python 在 Fedora 上安装 OpenC ...

  3. 2023-03-05:ffmpeg推送本地视频至lal流媒体服务器(以RTMP为例),请用go语言编写。

    2023-03-05:ffmpeg推送本地视频至lal流媒体服务器(以RTMP为例),请用go语言编写. 答案2023-03-05: 使用 github.com/moonfdd/ffmpeg-go 库 ...

  4. 2022-07-23:给定N件物品,每个物品有重量(w[i])、有价值(v[i]), 只能最多选两件商品,重量不超过bag,返回价值最大能是多少? N <= 10^5, w[i] <= 10^5, v

    2022-07-23:给定N件物品,每个物品有重量(w[i]).有价值(v[i]), 只能最多选两件商品,重量不超过bag,返回价值最大能是多少? N <= 10^5, w[i] <= 1 ...

  5. 2022-01-01:给定int[][] meetings,比如 { {66, 70} 0号会议截止时间66,获得收益70 {25, 90} 1号会议截止时间25,获得收益90

    2022-01-01:给定int[][] meetings,比如 { {66, 70} 0号会议截止时间66,获得收益70 {25, 90} 1号会议截止时间25,获得收益90 {50, 30} 2号 ...

  6. 2021-12-13:字符串解码。给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k

    2021-12-13:字符串解码.给定一个经过编码的字符串,返回它解码后的字符串. 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k ...

  7. mac系统下,docker安装kibana报错,manifest for kibana:latest not found: manifest unknown: manifest unknown

    1.问题描述:mac系统下,docker安装kibana报错,manifest for kibana:latest not found: manifest unknown: manifest unkn ...

  8. python学习之-------OS 文件夹和文件操作

    # OS模块 :查看一个文件夹下所有文件,这个文件夹有文件夹,不能用walk# -- coding: UTF-8 --import osimport sys#C:\Users\Administrato ...

  9. 哈希工具john

    john:一种极其强大且适应性强的哈希破解工具 爆破字典使用臭名昭著的 rockyou.txt 词表--这是一个非常大的常用密码词表 使用的工具 字典:rockyou.txt 哈希识别工具:hash- ...

  10. C#.NET Framework RSA 私钥签名 公钥验签(验证签名) ver:20230612

    C#.NET Framework RSA 私钥签名 公钥验签(验证签名) ver:20230612 环境说明: .NET Framework 4.6 的控制台程序 . .NET Framework 对 ...