- 博客(54)
- 收藏
- 关注
原创 浏览器中输入某个地址后发生了什么
四次挥手: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(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的传值
子级组件想要修改父级组件的数据,需要绑定事件,将子级组件修改的数据通过事件的实参传给父级组件,然后再把父级组件的数据改为子级组件传过来的数据,从而刷新页面。语法:父组件:监听事件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语法(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
原创 实例项目——登录及用户信息显示
需要发起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
原创 解构赋值
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
原创 同步和异步案例分析
循环第一次,将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关注的人