自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 CSS3新特性

keyframes 动画名称 { 动画序列 }

2025-03-15 13:17:53 392

原创 浏览器中输入某个地址后发生了什么

四次挥手:A信息传输完成,告诉B(发送FIN) -> B回应收到(返回ACK) -> B也完成传输/接收(FIN、ACK) -> A方收到(ACK)。理解:我说完了 -> 你知道了 -> 你也说完了 -> 我收到了,挂吧。三次握手:客户端向服务器端发送连接请求(SYN) -> 服务器端同意客户端连接并也向客户端申请连接(ACK、SYN) -> 客户端向服务器开始说话(ACK)。理解:拨号 -> 对方接通 -> 自己开始说话.

2025-03-14 18:12:58 125

原创 防抖和节流

if (tid) {//重新开始计时,清除之前的定时器,定义一个新的定时器console.log('鼠标移动事件处理函数的逻辑代码');}, 500);});

2023-07-26 15:50:09 342

原创 Object.defineProperty

Object.defineProperty()方法是给对象的原型对象添加属性或者修改它的现有属性,返回值为新的对象。

2023-07-25 19:18:40 234 1

原创 react—路由

需要注意的是,这种传参方式,目标页面接收到的参数是query字符串,我们需要将这个字符串处理成对象的行,才能通过对象点语法取到数据。而'a1'指的网址是当前网页的网址的最后添加/a1,也就是'http://ip:port/user/a1。在实际中肯定不是通过在地址栏输入不同路由来切换页面的,接下来就通过标签和js语法写代码来实现页面(组件)的切换。注:二级路由不能写成'/a1',这样写真正的网址是'http://ip:port/a1';2.1. 利用标签跳<Link to="/路由名"></Link>

2023-07-07 12:00:00 1167

原创 react—Hook(2)

允许在父级组件和底下任意层次的子组件之间传递状态。在函数组件中使用useContext来使用。Context。

2023-07-05 19:03:26 534

原创 react—Hook(1)

用来获取页面中的元素,这样就可以对这个元素进行操作。获取元素需要使用.current才能获取到页面中的具体元素。定义:box=useRef(null)绑定:<div ref={box}></div>使用:box.current.样式等等简单使用: 使用react框架实现原生放大镜效果和拖拽效果。父组件传给子组件的值,子组件只能渲染,不能更改。想要子组件可以更改父组件传的数据,可以使用反向传参。就是父组件将数据和方法都传给子组件,子组件修改完后再传给父组件。使用时机:当组件被多次重复调用时,组件内

2023-07-04 19:47:47 435

原创 react环境

css样式的引入可以使用行内样式,也可以是外联样式,只是外联样式可以是全局的,也可以是局部的。通过上面的结果可以验证,当修改了msg后,控制台获取的msg已经由hello变为了world,但页面中显示的还是原始数据hello。前面的2点中写了普通的数据,当我们变量时,页面并不会跟着刷新,所以需要使用官方提供的API来将数据变为响应式的,类似vue中的ref。新版本(16.8后)的函数组件——可以使用官方API来让函数内部的变量成为一个响应式变量,解决了上面的问题,下面的知识点会讲解。

2023-07-02 17:21:09 1025

原创 ref&css绑变量&use

直接在css中设置某元素的某个样式,属性值为v-bind('变量名')。装插件,相当于给全局绑定属性,后面就可以全局使用这个属性。

2023-06-16 20:22:26 295

原创 Pinia仓库

也可以通过响应式结构赋值toRefs(需要从vue中引入),将对象里面的所有属性取出来放到变量中。使用toRefs,组件可以解构js文件中返回的响应式对象且不会失去响应性。注意,引入的名字必须和stores/counter.js中导出的文件相同。stores/counter.js文件的格式是安装脚手架时已经配置好的,只要按照需求更改就行。通过运行结果可以验证,当父组件中的更改count时,子组件中使用到的count也跟着更改。和vuex仓库组合式API中的模块moduls比较类似。

2023-06-15 20:24:22 125

原创 仓库Vuex

通过上面案例会发现,通调用方法的形式也可以实现getters里面的getage函数的功能,那就是在getage方法中返回一个通过this.$store来访问store对象中的getters中的函数。一般载荷应该是一个对象,这样就可以在里面放置多个字段,使记录的mutation更可读。,然后提交载荷,这样mutations中的方法就可以接收到修改的数据,然后进行state的修改。我个人理解的是,类似于vue框架中的data,都是函数(设计成函数是为了给每个组件/仓库提供独立的数据),里面用来存放数据的。

2023-06-15 20:09:06 474

原创 Vue框架中的路由

npm init vue@latest => 选择添pinia和router => 进入项目文件夹 => npm i => npm run dev。

2023-06-15 16:47:31 1794 2

原创 Vue的组合式

前面学习的选项式API中,自定义属性需要注册才能使用,自定义事件不需要;但组合式API中自定义属性和自定义事件都需要注册才能使用。引入:import { defineProps, defineEmits } from 'vue'注册属性——defineProps(["title", "x"]);注册事件——let emit = defineEmits(["myevent"]);使用:属性跟选项式用法一样——:自定义属性名="变量名"自定义事件——父组件绑定事件,子组件触发事件。// 父组件中。

2023-06-15 09:22:08 1332

原创 Vue组件——动态、缓存、异步组件

</component>动态:<component :is="组件名">

2023-06-14 09:17:44 2718

原创 Vue的传值

子级组件想要修改父级组件的数据,需要绑定事件,将子级组件修改的数据通过事件的实参传给父级组件,然后再把父级组件的数据改为子级组件传过来的数据,从而刷新页面。语法:父组件:监听事件Box子组件内部:触发事件 this.$emit("myevent","传参数")

2023-06-13 09:39:09 970

原创 Vue语法(5)

vue3.0 组件绑定原生事件时直接绑定,vue2.0 组件绑定原生事件时需要添加.native。自定义事件:父组件绑定自定义事件,子组件设计自定义事件fm() {console.log("Box的自定义事件,点击三次触发");fn为子组件中的方法,在该方法中设计myevent事件。

2023-06-13 09:38:10 1000

原创 Vue语法(4)

directives中注册(对象) ==> 挂载(mounted(el,data){ 操作代码})==> 元素中使用。

2023-06-12 09:15:10 516

原创 Vue语法(3)

在vue2.0中该方法称为过滤器,vue3.0称为数据处理。之前的语法vue框架中的methods我们只放了事件处理函数,其实除此以外,methods中还可以放置数据处理函数。比如说,在实际情况中,数据库中存储个人信息时,存储的是生日,但显示给用户的话想要显示年龄,那就可以通过数据处理,将生日计算成年龄。vue2.0中使用:birth|getAge;vue3.0中使用再比如说,发布朋友圈或新浪微博时,数据库存储的是具体事件,而页面左下角显示的是多少时间前发布的,所以需要通过数据处理来显示。

2023-06-08 09:49:40 251

原创 Vue语法(2)

v-if: 创建或销毁元素节点v-show: 元素节点隐藏或显示,元素节点还在两者的选择需要根据使用场景。当高频切换时,使用v-show,具有更高的渲染消耗;反之,使用v-if。

2023-06-07 20:07:19 202

原创 Vue框架基础及语法(1)

1. 基本框架。

2023-06-05 20:02:20 221

原创 管理后台——项目准备

技术栈:HTML、CSS(SASS)、JS(TS)开发环境:vite。

2023-06-01 18:49:38 196

原创 存储数据的方式

SESSION 会员管理系统里面的会员信息。

2023-06-01 18:47:54 75

原创 前端项目管理

Git:客户端软件,用于管理代码Gitee:码云,国内的,网速快 服务平台Github:网速慢 服务平台。

2023-06-01 18:46:54 285

原创 Egg框架

是nodejs的一个框架,用于写后端服务器,阿里巴巴开发的。高效。

2023-06-01 18:46:02 426

原创 解决跨域问题

客户端。

2023-05-24 20:10:57 386

原创 实例项目——登录及用户信息显示

需要发起AJAX请求,将用户输入的数据传给服务器。发生跨域问题,使用Proxy代理来解决,接下来是配置方法。创建vite.congfig.js进行配置。

2023-05-17 19:54:10 207

原创 模块化开发——系统模块

1. 引入模块:语法:require("node:fs") 'node:'可以省略注:在node环境下运行使用require("fs")引入;在浏览器中运行使用import.from引入模块2. 文件读取:1. fs.readFile(path[,options],callback) path为文件路径;options为编码方式,可选项;callback为回调函数,如果读取失败抛出错误,读取成功后可以打印出读取文件的内容。案例:先打印1,然后data读取成功后再打印2,读取不成功的话就不打印2。

2023-05-08 20:23:22 144

原创 客户端数据存储、获取、清除的方法

存:localStorage.setItem(key,value) 调用一次,存储一次数据。浏览器中右键检查里面的Application中查看取:localStorage.getItem(key)全部清除:localStorage.clear()清除单个:localStorage.remove(key)

2023-04-27 19:12:01 307

原创 JS基础语句

使用场景:不确定循环次数,但是确定循环结束的终止条件,用whiledo{ } while( ) 先执行一次do,再判断使用场景:不确定循环次数,但是确定循环结束的终止条件确定循环次数,用for循环。

2023-04-24 20:14:24 41

原创 DOM基础

data-自定义的属性名。

2023-04-21 12:35:08 37

原创 Proxy

在目标对象(obj)之前架设一层拦截,每次访问目标对象都需要经过这层拦截,可以通过拦截来过滤或者修改外界的访问。

2023-04-19 19:38:58 36

原创 解构赋值

1. 当右边个数小于左边个数时,依旧看结构取值,若左边多出的部分出现了...扩展运算符,就赋值为[ ],没有时就为undefined。...只能有一个并且位于最后;4. 若等号右边不是数组,或者说不是可遍历接口的数据(除了字符串、数组、set、arguments、map外),会报错。概念:左边用数组把变量包裹起来和右边结构进行赋值,一般都用于数组结构。对象的简介表达式:当属性名和值是同一个时,就可以省略值,只写一个即可。2. 当左边个数小于右边个数时,依旧看结构取值。3. 结构默认值时,就为设置的默认值。

2023-04-18 18:56:14 36

原创 原型对象&原型链

当访问对象的属性时,优先访问它本身的属性,如果没有就沿着__proto__一直往上找,找到就返回;由此可见,Function的原型链:Function.prototype、Object.prototype。问题:CreatObj.prototype是一个对象,那么这个对象又是谁构造出来的呢?注意:顶层函数Object的原型对象的__proto__被JS底层直接指向了null。由此可见,obj1的原型链(看它的__proto__这一条链)Object函数对象作为实例对象时,是由Function构造的。

2023-04-18 17:22:34 35

原创 async&await

若返回值出现代码逻辑错误,那promise的状态就为rejected/失败,用.catch捕获;若返回值没有错误,那promise的状态就为resolve/成功,并且将return的结果作为参数,传给它的.then方法。,await后面的代码才能执行。如果异步操作的结果为成功,直接返回结果;如果异步操作的结果为失败,浏览器自动抛出异常,需要捕获失败的结果。需要写在async函数内部,为了等待异步操作。如果await后跟的不是promise对象,那直接返回原来的值。异步执行完成并产生结果。

2023-04-17 20:37:54 31

原创 CSS介绍及选择器

Cascading Style Sheets: 层叠样式表、级联样式表。

2023-04-16 20:09:16 41

原创 同步和异步案例分析

循环第一次,将i=0传入setT()函数,setT()函数里面就定义了一个index变量来接收i,index是function函数接收到的实参,实际参数,是不变的,function函数在执行时,访问的是当前作用域内的index,也就是i=0。以此类推,for循环完了之后,1秒时间到,就执行各个块级作用域AO里面的打印代码,以第一次循环来举例:执行AO1内的代码,打印0,setTimeout函数执行完毕,就销毁AO1。该方法和方法2是一个意思,就是不在循环外面执行函数,而是声明函数的同时立马执行函数。

2023-04-16 20:05:07 74

原创 Class类

是ES5中构造函数的变种,结构清晰,类似于强语言,类型是function(constuctor构造函数)。普通函数属于构造函数,可以使用new方法来创建;但箭头函数不可以使用new方法来创建,因为它没有this环境。那就来验证一下吧!console.log('已调用');//打印'已调用' 打印7//打印'已调用'//hihi。

2023-04-16 20:04:52 126

原创 HTML5复习

5.align-content: 交叉轴多根轴线对齐方式,取值和justify-content一样 ​。5)space-around: 剩余空间平均的分配给每个盒子两端 ​。4)space-between: 两端对齐,剩余空间平均分配 ​。3.justify-content: 主轴方向的对齐方式 ​。2. 便于浏览器解析 --- SEO(搜索引擎)的优化。2) flex-end: 主轴方向结束方向排列 ​。3)row-reverse: 水平方向反向 ​。2)flex-end: 交叉轴结束方向排列 ​。

2023-04-16 19:50:15 45

原创 Promise--异步编程的解决方案

Promise 是ES6新增的对于异步编程的一种解决方案,比普通的回调函数解决异步问题功能更强大回调函数下例中的callback函数就称为a函数的回调函数fn();//a回调一下fn//1111。

2023-04-15 16:47:52 981

原创 Date&Object&Math

new Date( ) //把时间轴上的一个时刻的所有信息,打包到这个对象中,然后通过这个对象的方法获取信息。f1.hasOwnProperty( ) //判断属性名是不是自己原有的属性,不在原型对象中找,返回值为布尔值。obj=Object.create( ) //创建一个空对象,然后指定它的原型对象为传入的参数。1. Object.keys() 返回由键名组成的数组,不访问原型对象。2. Object.valus() 返回由键值组成的数组,不访问原型对象。

2023-04-13 17:34:59 28

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除