- 博客(340)
- 资源 (11)
- 收藏
- 关注
原创 Markdown快速上手(typora)
就是支持HTML5语法(部分展示用的语法,并不是所有),前端人员的福音,我们可以直接在里面写HTML5代码就可以实现功能,比如上面的图片太大,我们可以利用img标签进行样式的设置。这里解释一下:的意思,如果单独在左侧一个:号,就是默认的文本左对齐,如果两侧都有:号,就是文本居中对齐,同理,右侧一个:号,就是文本右对齐。可以选中文本在这里直接设置,后面也有快捷键,也可以使用其语法,一个#,对应一级标题,两个#,对应二级标题,等。其他的上面说到的地方,都可以使用HTML5语法实现,就不再一一展示。
2024-11-07 17:24:30 651
原创 vue2之混入(mixin)
Vue 2 的混入(Mixin)是一种在 Vue 组件中分发可复用功能的方式。通过混入,你可以将一些通用的组件选项(如数据、方法、计算属性、生命周期钩子等)提取到一个混入对象中,并在多个组件中重用这些选项,从而实现代码复用和组织。
2024-10-24 15:50:30 1127
原创 前端学习笔记(2.0)
在做公司的老项目时,第一件事就是对应的将代码拷过来的时候出现的环境的问题。一般来说,就是拷过来的代码不能直接用,把对应的node_modules文件夹删除,然后直接npm i进行安装对应的库和插件即可。但是,由于是老项目,所以用到的库和现在电脑上的node版本不一样,所以就导致执行命令npm i的时候报错。
2024-10-22 17:20:44 658
原创 vue组件传值之$attrs
然后我们可能会有疑问,既然爷爷可以向孙组件传递数据,那么孙可不可以修改爷爷的数据呢,其实,原理和当时的props是一样的,这种方式虽然不能直接修改爷爷的值,但是可以让爷爷再传递一个方法给孙组件,然后孙组件调用这个方法,完成对爷爷的修改。这样我们就可以看到对应的x和y也被传递过来了,然后我们的关注重点是祖孙传值,而不是父子传值,所以这个brother组件就是一个桥梁,其作用就是不使用父组件的值,直接将父组件传递的值使用$attrs直接传递给孙组件。来到界面,我们点击按钮,就可以修改爷爷的数据。
2024-10-18 16:22:51 615
原创 pinia学习笔记(1.0)
当然了,同步和异步的方法都可以直接写在仓库中,因为pinia中没有mutation,所以一个action中可以书写同步和异步的方法,大大简化了状态更新流程。就是在定义大仓库导出大仓库之前进行插件定义,然后使用pinia实例进行使用该插件,就相当于默认给pinia添加了一些属性和方法,这样,无论是哪个Store,都可以直接使用这些插件。这样就建立了一个空的仓库 ,然后我们还需要定义一个Store,在Vuex中对应的state,getter,action中,都会在Store中进行定义。
2024-10-14 16:37:15 1059
原创 element-plus组件之Upload(2.0)
接上篇下面的属性就对应着回调函数,下面就一一进行介绍。因为element-plus在封装upload组件时就自带了一个预览和删除的图标,只是没有方法实现,这里进行指明。就是在图片墙列表中,自动就带了这两个图标和遮罩,下面的属性也与其相关。
2024-10-12 16:43:40 782
原创 element-plus组件之Upload(1.0)
在学习项目时,多次用到element-plus中的图片上传组件,这里就详细介绍一下,方便以后的学习和记忆。一般在使用第三方的组件时,我们进行查看文档时,虽然官方提供了一些案例,但是有些属性和方法等不可能一一用实例展示出来,下面就对该组件存在的属性和方法等进行一一展示。
2024-10-12 15:52:34 980
原创 sass学习笔记(1.0)
意思就是如果你自己定义了一个局部变量BGcolor,就是你可以使用自己定义的样式,如果没有改局部变量,那么当你使用这个样式时,默认就是红色。【通俗的将,你自己有,就用你自己的,你若是没有,就用我的】sass的注释和普通css的注释也是不一样的,类似于js的注释,我们直接在vscode中使用快捷键ctrl+/就可以自定生成sass的注释。使用@import导入规则,它在生成css文件是就把相关文件导入进来,在导入sass时,不需要指定导入文件的全名,就是可以省略后缀。可以看到,对应5的样式已经设置上去了。
2024-10-09 17:25:36 623
原创 React学习笔记(4.0)
这时候会有一个认证,需要验证你的gitee用户名和密码,输入正确就可以,要是输入错误下一次还是走这个错误的认证,需要在本机去删除那个认证标识,具体方法可以度娘。然后我们将自己创建的文件copy到这个初始化的文件夹中就行,默认刚才哪些代码就生成了一个MD文件,其他啥都没有。该命令中,路径就是自己创建的json文件路径,端口也可以自定义,不要写默认其他服务的保留端口即可。在项目中,一般都放在store文件夹中,对应的模块放入modules文件夹里,对应的目录结构如下。以counterStore举例。
2024-09-30 16:29:22 719
原创 docker学习笔记(1.0)
比如:docker pull nginx 下载 nginx镜像【等价于docker pull nginx:latest也就是默认下载最新版的镜像,如果想要下载指定版本的镜像,可以去dockerhub下载,网址:https://hub.docker.com】和docker start功能相反,就是停掉容器,但是用法相同,后面后面可以跟上容器的ID,或者是容器的names。如果直接使用rm不加参数,只能删除停止的容器,如果加上参数-f,就是强制删除容器,无论停止与否。
2024-09-29 17:02:43 764
原创 React学习笔记(3.0)
回到React双向绑定这里,就是在输入框输入值,然后在React调试工具中也可以看到对象的状态的值,相反,在调试工具中修改里面的值,对应输入框的值也会对应的进行修改。这个东西和vue调试工具一样,都需要去重谷歌商店中下载,不过懂的都懂,需要科学上网。classnames是一个简单的JS库,可以非常方便的通过条件动态控制class类名的显示。这时最好重启一下谷歌浏览器,否则对应的调试工具的components选项可能不会出来。这里使用了box3和box2的动态类名,我们来到对应的样式文件。
2024-09-27 16:47:15 594
原创 Java学习笔记(1.0)
①对于正数而言,原码、反码、补码是相同的②对于负数,原码,反码(为首位表示正负的1不变,剩下的0和1互换),补码(为反码加1)
2024-09-26 17:24:27 197
原创 React学习笔记(2.0)
本质:和普通JS变量不同的是,状态变量一旦发生变化组件的视图UI也会跟着发生变化(数据驱动视图),可以类比与vue中的响应式。这里的e就是一个类似原生的事件e,并不是真正的原生事件e,如果要使用原生事件e,需要使用 e.nativeEvent。在React中,一个组件就是首字母大写的函数,内部存放了组件的逻辑和视图UI,渲染组件只需要把组件当成标签书写即可。概念:一个组件就是用户界面的一部分,他可以有自己的逻辑和外观,组件之间可以相互嵌套,也可以复用多次。在css文件中定义样式,然后在引入使用。
2024-09-26 16:53:39 504
原创 个人小结(2.0)
c:/Users/10834/Desktop/0716_project/vite_Ts_Project/src/views/screen/index.vue”隐式拥有 "any" 类型。服气,就是这样的一个小问题,一开始自己的解决访问直接使用的@ts-ignore这样直接忽略了ts类型检查。这个路由信息是一个ts文件,而引入的vue文件没有设置lang="ts",这就解释了为什么有的模块不报错,就个别引入模块报错。看看,回答的模糊其词,我的tsconfig.json文件几乎为空,没有进行配置。
2024-09-20 16:03:05 494
原创 React学习笔记(1.0)
在使用vite创建react时,有一个语言选项,就是typescript-SWC,这里介绍一下SWC。SWC:可扩展的Rust的平台,用于下一代快速开发工具,SWC比Babel快20倍。简单来说,就是用于格式转换的,比Babel要快,所以在选择语言时,选择带SWC的就行,结构和不带SWC的一样。在创建的项目的入口文件中。
2024-09-14 17:09:15 1238
原创 第一个React程序
还有就是react和vue不一样,你要写样式的话就建立一个css文件即可,和你的tsx文件或ts文件的文件名命名一样即可,还有就是你的组件的命名一定要首字母大写,以及写类名的时候要写成className而不是class,这是因为react考虑是和class类这个关键字冲突。tsx也没啥特别的,也是ts的一种,只是ts的一个扩展后缀,多了些功能,具体区别搜一下就能知道,目前来说,对于写demo来说,你写ts后缀和tsx后缀差别不大。和当时建立vue项目一样,使用该命令创建,只是后面选择框架时选择react,
2024-09-06 17:28:41 1077
原创 个人小结(1.0)
因为npm库上的包都会实时更新,比如以前的包名都有可能出现改变,比如以前叫particles-vue3,而目前叫做npm i @tsparticles/vue3,使用该命令进行安装,并且还出现了其他包的依赖,否则不能正常显示粒子效果,一个是import { loadFull } from 'tsparticles',另一个是import {loadSlim} from 'tsparticles-slim',这两个选择一个即可,对应着不同的粒子效果。问题4:在使用npm的粒子库时,没有出现预期的效果。
2024-08-19 15:36:27 493
原创 CSS选择器
important>行内样式,当然了,上面的,a,b,c,也肯定不如它,一旦给某一个元素样式中书写了!important,就以它的样式为准!看【元素、伪元素】的个数,谁多就是谁的优先级高,如果个数还是相同,就遵循后来者居上原则(就是谁最后写就按照谁的样式)。首先,一旦出现行内样式,不管你上面的a,b,c的个数有多少个,都以行内样式为准,除非行内样式有的没有设置。当第一位a的数量相同时,比如都有1个选择器,那么就看下一位b的个数【类,伪类,属性】,其中b表示:一个选择器中【类,伪类,属性】选择器的个数。
2024-07-29 17:24:26 183
原创 Typescript学习笔记(2.0)
接口可以再定义类的时候去限制类的结构,接口中的所有属性都不能有实际的值,所以说,接口只考虑对象的接口,而不考虑其值,在接口中所有的方法都是抽象方法。接口用来定义一个类结构,用来定义一个类中应该包含哪些属性和方法,同时接口也可以当做类型声明去使用。interface和abstract是TS中独有的,在编译后就看不到了。参数-w,就是对app.ts进行监视,每次该文件改变时就会自动编译。console.log('大家好~~')定义类时,可以使类去实现一个接口。注意:接口是可以重复声明的。
2024-07-24 17:05:18 515
原创 Typescript学习笔记(1.0)
let c:{name:string,[abc:string]:any},其中abc可以随意起名,该类型声明表示c中只要包含name属性,其他的属性有或无都随意。他与any的区别是不能随意赋值,如果把一个unknown类型的值赋值给别的值,就会报错,而any不会报错,并且将自己的类型赋值给被赋值的那个变量。void:常用于设置函数返回值,如果没有指定函数的返回值类型,会自动被认为返回值的类型为void。any:表示任意类型,一个变量设置为此类型后,相当于关闭了TS类型检测。
2024-07-23 17:04:15 364
原创 Vue学习笔记-自定义组件使用v-model
还有就是那个update:aaa中的update,这里使用update是vue框架官方的写法,如果想要叫其他值,就还需要父组件传递对应的事件@custom-update:myValue="someData = $event",过程也比较繁琐,这里只是说明为什么那里要叫update。在实际的开发中还是使用这种固定命名的比较便于开发。其中,有几个需要注意的地方,就是使用defineProps()时,注意区分v-model的值和父子传值的属性。这样就完成了自定以组件的双向绑定。注意和之前的父组件内容进行对比。
2024-07-09 16:50:01 340
原创 vue学习笔记之组件传值
在Vue.js项目中,Vuex通常被用作状态管理库,尤其是在大型或复杂的应用中,它提供了一种集中管理所有组件共享状态的方式。对于兄弟组件之间的通信,Vuex可以作为一个很好的解决方案,因为它允许状态被全局访问和修改。
2024-07-07 20:47:37 923
原创 vue学习笔记(购物车小案例)
写一个按钮,当我们点击按钮的时候,就可以看到arrTest2返回的值,我们可以看到多了一个true,因为在执行every后,this.testEvery=true,对应页面的testEvery值也会进行显示。然后解释一下,这里首先使用filter方法将满足选中状态的商品进行过滤,返回的是一个数组,然后再将返回的数组使用累加方法reduce进行金额的计算。解释一下,第一个参数就是传递过来的值,是加1,还是加-1,第二个值就是对应的索引,因为要对对应的商品进行数量加减操作,所以需要对应商品的索引。
2024-07-06 18:15:35 950
原创 Vue3学习笔记(n.0)
所以,简而言之,在实际的开发中,上面的数组列表一般是后端返回出来的数据,我们需要使用v-for将这些数据进行渲染,但是在使用v-for的时候也必须要加key,并且key的取值要有唯一性,一般都是数据的ID,比如学生列表的学生ID,或商品列表中的商品ID。3.如果节点类型不同,直接干掉前面的节点,再创建并插入新的节点,不会再比较这个节点后面的子节点;4.使用 index 的值当作 key 的值没有任何意义(因为 index 的值不具有唯一性,实际项目中如果没有id,推荐使用index)
2024-07-05 21:51:23 345
原创 jQuery学习笔记(3.0)
params:想要更改的样式属性,以对象形式传递,必须写。//里面可以加参数,就是速度毫秒数,如1000,一秒。$(".nav>li").mouseover(function(){ //鼠标经过下拉。$(".nav>li").mouseover(function(){ //鼠标离开上拉。当多次触发动画时,就造成多个动画或者效果排队执行。opacity:透明度必须写,取值0-1之间。slideDown() //下拉。//stop方法必须写在动画的前面。slideUp() //上拉。
2024-04-10 09:58:36 448
原创 jQuery学习笔记(2.0)
2.选择某个节点的兄弟节点:$("ol .item").siblings("li").css("color","red") //将ol下的类名为item的节点的所有li兄弟节点的样式进行设置(不包括item节点自己)。4.第二种方式根据索引选择节点:$("ul li").eq(2).css("color","red") //以前的方式$("ul li:eq(2)").css...$(".one").addClass("current") //在原先类名的基础上,追加类名,不影响以前的类名。
2024-04-10 09:31:16 622
原创 jQuery学习笔记(1.0)
8.Dom对象与jQuery对象可以相互转换,因为原生js比jQuery更大,原生的一些属性和方法jQuery没有给我们封装,要向使用这些属性和方法需要把jQuery对象转换为Dom对象才能使用。10.jQuery-->Dom $('div')[index] 或$('div').get(index)12.jQuery修改样式:$("div").css('属性','值')5.用jQuery获取元素就是jQuery对象:$('div')11.1 jQuery选择器:$("选择器")或者$换成jQuery。
2024-03-30 20:12:07 452
原创 vue面试题整理(1.0)
computed:是计算属性,依赖其他属性值,并且computed的值有缓存,当依赖的属性值发生改变时,才会重新计算computed的值,默认是只读的(相当于getter函数),它也可以设置getter和setter函数来完成读和写。(1)、造成数据混乱:如:一个父级组件的数据传递给多个子组件,某个子组件如果通过Props修改父组件的数据,父级组件再修改其他子组件,其他子组件就会莫名其妙的被修改,造成数据混乱。watch:属性变化的检测(相当于事件),当属性的值发生变化时,可以调用函数。
2023-12-02 21:27:49 741
原创 我的创作纪念日
不能说成就吧,对于程序员的一天,不是在改bug的路上,还是在改bug的路上,改掉一个个的bug就是我最大的成就。提示:你过去写得最好的一段代码是什么?提示:希望未来能够不忘初心,一步步走向更好的子集。提示:当前创作和你的工作、学习是什么样的关系。提示:可以和大家分享最初成为创作者的初心。提示:在创作的过程中都有哪些收获。
2023-11-18 18:50:19 219
原创 前端面试题整理(2.0)
在导航被确认的时候执行回调,并且把组件实例作为回调方法的参数,可以在这个守卫中请求服务端获取数据,当成功获取并能进入路由时,调用next并在回调中通过vm访问组件实例进行赋值等操作,(next中函数的调用在mounted之后:为了确保能对组件实例的完整访问)简单理解:导航守卫就是路由跳转过程中的一些钩子函数,再直白点路由跳转是一个大的过程,这个大的过程分为跳转前中后等细小的过程,在每一个过程中都有一个函数,这个函数能让你操作一些其他的事的时机,比如跳转前是否验证登录,这就是导航守卫。常用于发送网络请求。
2023-10-24 11:33:47 248
原创 前端面试题整理(1.0)
Plugin就是插件,基于事件流框架Tapable,插件可以扩展Webpack的功能,在Webpack运行的声明周期中会广播出许多事件,Plugin可以监听这些事件,在合适的时机通过Webpack提供的API改变输出结果。在以上过程中,Webpack会特定的时间点广播出特定的事件,插件在监听到感兴趣的事件后会执行特定的逻辑,并且插件可以调用Webpack提供的API改变Webpack的运行结果。③如果节点类型不同,直接干掉前面的节点,再创建并插入新的节点,不会再比较这个节点后面的子节点;
2023-10-21 11:27:53 408
原创 第三周晨考自测(3.0)
返回值:父节点,这里必是一个元素节点,因为文本节点或其他节点不可能当父节点,就和父元素节点有一点不同,当多次调用父节点的时候,顶级父节点是document,而父元素节点的顶级节点是document,而父元素节点的顶级节点的顶级元素节点是HTML。作用:获取某一节点下所有的子一级节点(也就是说子集节点里面嵌套的节点获取不到其标签,但是可以获取到内容,与父节点一起展示)返回值:也是一个节点(下一个兄弟节点),注意节点和元素节点的区别,这里还是节点,包括空白字符形成的文本节点。
2023-09-02 21:29:36 962
原创 第二周晨考自测(2.0)
i++){ var item=arr[i] // item 就是数组内的每一个数据 //把item当做key添加到对象内 obj[item]='随便数据'} //准备一个新的数组 var newArr=[] //循环遍历对象 for( var k in obj){// 把每一个 k添加到 newArr里面 newArr.push(k-0)}(21)arr.findIndex(function(item,index,arr){return})过滤数组,将满足条件的第一个数据的索引返回。
2023-08-19 21:30:32 356
原创 第一周晨考自测(1.0)
与解析的重名情况:(1)变量名与变量名重名(以第一个定义的变量名为准,后面定义的无意义)(2)函数名与函数名重名(后面定义的函数名会覆盖前面的函数名,也就是以后面的函数名为准)(3)变量名与函数名重名(以函数名为准)js的数据类型可以分为两种:一种是基本数据类型(数字,字符串,undefined,null,布尔),另一种是复杂数据类型(函数,对象,数组,日期对象,Set,Map等)在书写递归函数时,一般由以下内容构成:初始化,自增,执行代码,条件判断,不然就是一个没有尽头的递归函数,我们叫做死递归。
2023-08-19 20:49:23 369
原创 MongoDB(学习笔记1.0)
然后我们使用db.createCollection("users")创建一个名为users的集合,这里就比较恶心了,这里的集合就是我们以前学的关系型数据库中的表,对应关系就是table对应collection。这里就体现了非关系型数据库的自由了,一开始我们使用的name,age字段并不是唯一的,再向里面插入数据的时候就可以随意改变字段名,以及字段的个数。选择好点击download下载即可。还是刚才社区版安装的界面,下面有一个tools,点击即可,出现右边的安装界面,同样选择配置信息进行下载安装。
2023-06-05 16:52:30 1836 1
原创 ES6-ES13学习笔记(6.0)
箭头函数并不是万能的,一旦遇到function传统写法就直接使用箭头函数替换,在传统的时间绑定中,还是需要使用function的写法,而不要使用箭头函数,否则,一旦出现了箭头函数的嵌套,就会出现问题,特别是this指向,外层的this指向为window,里层的this指向外层的this,还是window,就会出现问题。箭头函数无法访问arguments,无法new。2.rest参数,剩余参数。箭头函数没有this。this指向父作用域。
2023-06-01 16:22:22 862
原创 ES6-ES13学习笔记(5.0)
注意与Array()的区别,如果直接使用Array(5),只是声明只有5个内容的空数组,而Array.of (5)则是声明数组元素为5的数组,即[5]。对于ECMA的支持还和浏览器有关以及浏览器版本有关,然后我使用Google浏览器就可以正常使用,//findLast findLastIndex() ES2022 逆序查找。发现在电脑自带的联想浏览器不支持此函数,还报错了。...复制为浅复制,如果数组中拥有嵌套就不行了。扁平化处理,将高维数组转换成一维数组。flatMap()适合复杂对象的展开。
2023-06-01 10:44:03 1352
原创 ES6-ES13学习笔记(4.0)
它与传统的全局方法isFinite()和isNaN()的区别在于,传统方法先调用Number()将非数值的值转为数值,再进行判断,而这两个新方法支队数值有效,Number.isFinite()对于非数值一律返回false,Number.isNaN()只对NaN返回true,非NaN一律返回false。如果传入的参数为0,那么就会输出空字符串)对于非数值,会首先转换为数值。startsWith函数 判断自发货窜是否以指定的字符串开头。endsWith函数 判断字符串是否以指定的字符串结尾。
2023-06-01 09:41:33 1119
常用镜像下载路径.txt
2020-04-15
cygwin.rar
2020-04-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人