实习手记(2):前端菜鸟的摸鱼与成长

在不断的学习(摸鱼)和实践中,第二周也快要结束了,这周总体来说还是蛮不错的比上周好很多(没有那么拘谨?)。前面两天一直在学习和摸鱼之后就修改了几个需求。这里记录一下学习到的新知识、小技巧、小细节,顺便再发表一下自己的小感想~

一、摸鱼与学习

摸鱼&感想

完善并提交上周需求修改:上周修没有修改移动端的(缺乏实际经验 之前也没写过移动端的),还是Q哥帮忙修改的(不得不表扬一下)。然后让我提交,好吧我竟然还不太熟悉。

看知识框架&面试题:这个就不多说了,改需求的就是给公司干的,学习是自己得到的(嗯有道理)。

学习新知识与回顾:其实看这些我记不住太多,反正知道怎么去改组件的一些样式还有怎么使用就好了。

  • Ant Design vue
  • Vue

收获

  • 规范修改提交流程:记得安装一下git插件。add--》commit 「提交的修改信息要规范:例如更新feat(编号):修改的内容」--》git push--》在jenkins上选择对应的项目--》点击build now等待构建完毕。
  • 移动端修改:通过v-if="ifMatched"和@media 关键字当当视口宽度小于或等于某一特定值时,媒体查询内的样式会被应用,以适应移动端。例如:
@screen-mobile-width: 768px; // 设定移动端的断点宽度@media (max-width: @screen-mobile-width) {//要修改的样式}

二、实践中成长

实践

(1)修改官网弹框遮罩层背景颜色:就是之前的弹框遮罩层颜色太黑了改了个颜色。

  • 这里要注意哪里用到了弹框AModal哪里就要修改,不要漏了。
  • 知识点小记 :deep是一个深度选择器,接下来的样式会穿透scoped的限制,去影响到子组件的元素。
:deep(.ant-modal-mask) {background-color: rgba(102, 102, 102, 0.4);
}//这里其实不用deep也可以// deep的使用// 这里子组件的:deep会穿透scoped边界,并向下查找所有匹配.my-custom-class的选择器,包括子组件内部的元素,所以就影响到了子组件内部的inner element。//ParentComponent.vue<template><ChildComponent class="my-custom-class" /></template><style scoped>.my-custom-class {color: red;}:deep(.my-custom-class) {color: blue;}</style>//ChildComponent.vue<template><div class="inner-element">I'm in the child component</div></template><style scoped>.inner-element {/* blue */}
</style>

(2)表单项样式修改:修改了一个模特上传表单的样式。

  • 由于这里只需要给文字换一下样式,就使用了一个插槽把文字拿出来单独设置一个class,然后去修改样式。
<template><AFormItem name="name"><template #label><span class="model-name">{{ xxx }}</span></template><AInput/></AFormItem>
</template>
<style scoped>.model-name {color: #ffffff99;font-weight: 400;font-size: 14px;}
</style>

(3)首页banner修改:修改背景视频、文字和按钮的层级样式,以及添加蒙层。

  • 知识点小记1:使用v-html="t('global_home_text')", v-html则将数据作为HTML代码解析并渲染,所以不使用v-html识别不出来br换行。
  • 知识点小记2:绝对定位会脱离文档流,要给父容器添加position:relative,让子容器相对于父容器进行定位(子绝父相),不脱离文档流。需要更多了解的是BFC。这里先不写了后续写了再更新。
  • 知识点小记3:设置不同的层级可以使用 z-index,但只对具有定位(position)的元素生效。
<body><div id="div1">Div 1</div><div id="div2">Div 2</div><div id="div3">Div 3</div>
</body>
<style>#div1 {position: absolute;z-index: 1; /* 层级最低 */}#div2 {position: absolute;z-index: 2; /* 中间层级 */}#div3 {position: absolute;z-index: 3; /* 层级最高 */}
</style>
  • 知识点小计4:需要判断移动端和中英文,显示相应的四个不同图片。有两个方法,一种是使用双重三元运算符,另一种是使用映射表。
<template><div><img :src="imageSrc" /></div>
</template><script lang="ts" setup>import CnPc from '@assets/CnPc.png';import EnPc from '@assets/EnPc.png';import CnMobile from '@assets/CnMobile.png';import EnMobile from '@assets/EnMobile.png';const isMobile = ref(false);const isCN = ifCNLocale();// 第一种双重三元运算符,外层先判断是否移动端,内层判断中英文。// 但是还是不要有这个了,双重的话确实难以理解。。。// const imageSrc = isMobile ? (isCN ? CnMobile : EnMobile) : (isCN ? CnPc : EnPc);// 第二种映射const imageSrcMap = {['pc']: {'zh-CN': CnPc,en: EnPc,},['mobile']: {'zh-CN': CnMobile,en: EnMobile,},};const imageSrc = ref('');onMounted(() => {isMobile.value = matchMobile();imageSrc.value = imageSrcMap[isMobile.value ? 'mobile' : 'pc'][isCN ? 'zh-CN' : 'en'];});
</script>

坑点

  • 坑点1:图片无法显示。(1)图片也是一个模块,需要import引入 (2)检查有无拼写错误。之后才发现是大小写错了(尴尬不敢说话)。一定要cv能复制就复制避免拼写错误、英文大小写问题。(3)最后还不行就重新启动项目。
  • 坑点2:图片模糊。切图导出的时候选择图片*n >= 实际尺寸的。比如图是375*812的,而实际尺寸是1000*2000(举个例子),那么就要选择3倍导出。
  • 坑点3:图片还未加载完毕异常提前显示。具体的:看代码吧。
<script setup lang="ts">const showVideoSwipper = ref(false);//1.刚开始设置为falseonMounted(() => {setTimeout(() => {showSwipper.value = true;}, 1000);});//2.设置定时器,在组件挂载后等待1秒,将showVideoSwipper的值从false变为true
</script><template><div class="home-container"><!-- 首页轮播组件carousel --><a-carousel autoplay :autoplaySpeed="7000"><!-- 3.设置class:当showSwipper为false时,hide类将被添加到banner内,从而使banner透明度为0 --><Banner :class="{ hide: !showSwipper }" /></a-carousel></div>
<template><!-- Banner.vue内 -->
<style lang="less" scoped>
<!-- 4.组件内部设置opacity: 0; -->
.hide {opacity: 0;
}
</style>
<!-- 5.最后的结果就是,会黑屏(不可见)一秒之后再显示轮播图 -->

技巧

  • 修改调试技巧:先通过检查在界面修改样式,会更方便直观,调试好之后,再去项目里面修改代码,速度就快很多了(显然我还没有习惯)。
  • 项目无法显示,显示500内部错误:(1)看提示的错误原因,自己修改了哪里,初步定位错误原因(2)查看代码编写是否错误(3)使用log看哪一步没有显示出来(4)重启(比较浪费时间,最后在这样做)
  • 移动文件夹命令: pwd 查看当前目录,mv 原路径 目标路径。 例如:mv /Users/item/xxxx/ssss /Users/item/ 就是把ssss移动到item下面。
  • 快捷键:cm+c cm+v 快速复制下一行; cm+left/right定位到最左/右;cm+delete删除整行;option+left/right左右移动。

三、写在最后

  • 反正前两天没什么活,在学习摸鱼了~自我感觉上班比上课快乐(可能只是刚开始,希望以后也这么觉得)
  • 第一次写完了感觉没什么问题,一定要多细心排查几遍(真的很重要每次都被@太丢人了)
  • 工作过程中收获到的知识点可以记在todo list挺方便(Q哥教的好)
  • 另一个实习生好像就是来做杂活的(很辛苦什么都要会一点,她经常加班),招实习生进来不就是干活嘛呜呜怎么可能让我天天摸鱼做好心理准备
  • 愉快的一周吧~期待下周运动会虽然没报名,带薪去还是快乐的(但实习生没有衣服区别对待,我社恐一个人好尴尬。。)
  • 下周继续摸鱼&学习&工作吧。要制定一个自己的计划了,规划还是蛮重要的,好好想一下干什么。。。。
  • 碎碎念也就写在这里了,拜拜~下周继续碎碎念

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

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

相关文章

Vue3.js“非原始值”响应式实现基本原理笔记(一)

如果您觉得这篇文章有帮助的话&#xff01;给个点赞和评论支持下吧&#xff0c;感谢~ 作者&#xff1a;前端小王hs 阿里云社区博客专家/清华大学出版社签约作者/csdn百万访问前端博主/B站千粉前端up主 此篇文章是博主于2022年学习《Vue.js设计与实现》时的笔记整理而来 书籍&a…

Sentinel限流算法总结

文章目录 一、线程隔离二、滑动窗口算法三、令牌桶算法四、漏桶算法 一、线程隔离 线程隔离有两种方式实现&#xff1a; 线程池隔离&#xff1a;给每个服务调用业务分配一个线程池&#xff0c;利用线程池本身实现隔离效果信号量隔离&#xff1a;不创建线程池&#xff0c;而是…

Xilinx FPGA:vivado关于同步fifo的两个小实验

一、实验一&#xff1a;在同步fifo里写一个读一个&#xff08;写入是8个位宽&#xff0c;读出是16个位宽&#xff09; 程序&#xff1a; timescale 1ns / 1ps //要求写一个读一个 //读写时钟一致&#xff0c;写是8个位宽&#xff0c;读是16个位宽 module sync_fifo_test(inpu…

QQ音乐Android一面凉经

最近面试了不少公司, 近期告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是QQ音乐Android一面凉经。 面试岗位: QQ音乐Android开发工程师面试时长: 50min(提问40min 反问10min)代码考核: 无 面试问题(40min) 自我介绍 工作经历, 重点…

银行信用卡风险大数据分析与挖掘2024

银行信用卡风险大数据分析与挖掘 使用excel数据挖掘功能完成 一、信用卡客户信用等级影响因素分析与挖掘 基于客户信用记录表 1. 数据预处理 浏览数据 客户等级占比&#xff0c;其中优质客户占比较少&#xff0c;风险客户很多&#xff0c;分析影响客户信用等级的原因 年…

vue3+ts项目中.env配置环境变量与情景配置

一、环境变量配置 官网https://cn.vitejs.dev/guide/env-and-mode.html#intellisense 1. 新建.env开头的文件在根目录 为了防止意外地将一些环境变量泄漏到客户端&#xff0c;只有以 VITE_ 为前缀的变量才会暴露给经过 vite 处理的代码 .env 所有环境默认加载 .env.developm…

数字化精益生产系统--MRP 需求管理系统

MRP&#xff08;Material Requirements Planning&#xff0c;物料需求计划&#xff09;需求管理系统是一种在制造业中广泛应用的计划工具&#xff0c;旨在通过分析和计划企业生产和库存需求&#xff0c;优化资源利用&#xff0c;提高生产效率。以下是对MRP需求管理系统的功能设…

Raylib 坐标系

draftx 符号调整为正数 发现采样坐标系原点0&#xff0c;0 在左上角&#xff0c;正方向 右&#xff0c;下 绘制坐标系 原点0&#xff0c;0 在左下角&#xff0c;正方向 右&#xff0c;上 拖拽可得 #include <raylib.h> // 重整原因&#xff1a;解决新函数放大缩小之下…

当需要对多个表进行联合更新操作时,怎样确保数据的一致性?

文章目录 一、问题分析二、解决方案三、示例代码&#xff08;以 MySQL 为例&#xff09;四、加锁机制示例五、测试和验证六、总结 在数据库管理中&#xff0c;经常会遇到需要对多个表进行联合更新的情况。这种操作带来了一定的复杂性&#xff0c;因为要确保在整个更新过程中数据…

为什么需要服务器?服务器可以做些什么

目录 一、服务器和电脑的区别二、什么是SSH三、什么是免密码登录四、服务器如何实现SSH免密码登录 一、服务器和电脑的区别 服务器和电脑是两种不同类型的计算机系统&#xff0c;它们在设计、功能和用途上存在明显的区别。首先&#xff0c;从硬件配置上看&#xff0c;服务器通…

vb.netcad二开自学笔记3:启动与销毁

Imports Autodesk.AutoCAD.ApplicationServicesImports Autodesk.AutoCAD.EditorInputImports Autodesk.AutoCAD.RuntimePublic Class WellcomCADImplements IExtensionApplicationPublic Sub Initialize() Implements IExtensionApplication.InitializeMsgBox("net程序已…

JDK都出到20多了,你还不会使用JDK8的Stream流写代码吗?

目录 前言 Stream流 是什么&#xff1f; 为什么要用Steam流 常见stream流使用案例 映射 map() & 集合 collect() 单字段映射 多字段映射 映射为其他的对象 映射为 Map 去重 distinct() 过滤 filter() Stream流的其他方法 使用Stream流的弊端 前言 当你某天看…

基于深度学习LightWeight的人体姿态检测跌倒系统源码

一. LightWeight概述 light weight openpose是openpose的简化版本&#xff0c;使用了openpose的大体流程。 Light weight openpose和openpose的区别是&#xff1a; a 前者使用的是Mobilenet V1&#xff08;到conv5_5&#xff09;&#xff0c;后者使用的是Vgg19&#xff08;前10…

公务员考试、事业编考试、教师资格证、面试、K12资料、电子书

点击上方△腾阳 关注 作者 l 腾阳 转载请联系授权 你好&#xff0c;我是腾阳。 在这个自媒体的海洋里&#xff0c;我曾是一只迷失方向的小鸟&#xff0c;多次尝试飞翔却总是跌跌撞撞。 但每一次跌倒&#xff0c;都让我更坚定地相信&#xff0c;只要不放弃&#xff0c;总…

【Unity2D 2022:Particle System】添加命中粒子特效

一、创建粒子特效游戏物体 二、修改粒子系统属性 1. 基础属性 &#xff08;1&#xff09;修改发射粒子持续时间&#xff08;Duration&#xff09;为1s &#xff08;2&#xff09;取消勾选循环&#xff08;Looping&#xff09; &#xff08;2&#xff09;修改粒子存在时间&…

2024全网最全面及最新且最为详细的网络安全技巧五 之 SSRF 漏洞EXP技巧,典例分析以及 如何修复 (上册)———— 作者:LJS

五——SSRF漏洞 EXP技巧&#xff0c;典例分析以及 如何修复 目录 五——SSRF EXP技巧&#xff0c;典例分析以及 如何修复 5.1Apache mod_proxy SSRF&#xff08;CVE-2021-40438&#xff09;的一点分析和延伸 0x01 Apache Module综述 0x02 漏洞原理分析 Apache在配置反代的后端…

Vue的学习之生命周期

一、生命周期 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Vue的学习</title><script src"vue.js" type"text/javascript" charset"utf-8"></script></head>&l…

C#如何从中级进阶到高级开发

从中级C#开发进阶到高级开发&#xff0c;需要深入理解和掌握更复杂的技术和架构&#xff0c;同时培养解决问题的能力和创新思维。以下是一些关键的技能和步骤&#xff0c;可以帮助你从中级向高级开发迈进&#xff1a; 1. 深入理解C#语言特性 泛型&#xff1a;熟练使用泛型提高…

Java实现登录验证 -- JWT令牌实现

目录 1.实现登录验证的引出原因 2.JWT令牌2.1 使用JWT令牌时2.2 令牌的组成 3. JWT令牌&#xff08;token&#xff09;生成和校验3.1 引入JWT令牌的依赖3.2 使用Jar包中提供的API来实现JWT令牌的生成和校验3.3 使用JWT令牌验证登录3.4 令牌的优缺点 1.实现登录验证的引出 传统…

强化Linux系统安全性:从基础命令到高级管理

强化Linux系统安全性&#xff1a;从基础命令到高级管理 引言 在网络安全领域&#xff0c;Linux系统因其稳定性和安全性而广受欢迎。作为一名网络安全专家&#xff0c;我将分享如何通过Linux基础命令和高级管理技巧来加强系统的安全性。本文将基于《学神 IT 教育》提供的Linux…