- 博客(16)
- 收藏
- 关注
原创 React框架-函数组件与类组件学习
类组件的代码使用方式如下所示:1.类组件创建类后必须要继承React.Component2.必须要有render 函数,返回的是react标签3.render 中必须有return二、函数组件函数组件也跟类组件一样使用ReactDOM.render方法在真实DOM容器中进行渲染1.类组件有生命周期,函数组件没有2.类组件需要继承 Class,函数组件不需要3.类组件可以获取实例化的 this,并且基于 this 做各种操作,函数组件不行4.类组件内部可以定义并维护 state, 函数组件为无状态组
2022-06-03 01:37:01
464
原创 CSS-清除多行盒子排列每行最后一个盒子外边距属性
在项目中我曾经碰到过多行盒子排列,为了盒子之间的间隔从而添加了margin-right属性,但在每一行的最后一个元素的margin-right属性总是会影响到盒子的布局,从而导致本应该出现在当前行最后一个的盒子因为该属性导致空间不够从而被换行到下一行进而导致的UI显示问题。通过多次的实践思考我想到了几种解决的办法,也因此希望在这里进行心得记录,其具体的解决方法如下:①使用结构伪类选择器进行筛选nth-child()在类名为test的盒子样式上则如下所示:.test:nth-child(4n){
2022-03-21 00:33:10
2679
1
原创 JS系列-事件循环(浏览器)
首先需要了解同步和异步的概念以及区别:同步指的是当一个进程在执行某个请求时,如果这个请求需要等待一段时间才能返回,那么这个进程会一直等待下去,直到消息返回为止再继续向下执行。异步指的是当一个进程在执行某个请求时,如果这个请求需要等待一段时间才能返回,这个时候进程会继续往下执行,不会阻塞等待消息的返回,当消息返回时系统再通知进程进行处理。而众所周知 js 是单线程运行,因此在代码执行时,会将不同函数的执行上下文压入执行栈中来保证代码能够有序执行。在执行同步代码时,如果遇到异步事件,js 引擎并不会等
2022-03-20 23:40:09
175
原创 JS系列-实现promise以及对应方法
在实现之前需要先理解Promise工作的机制,其实Promise就是一个构造函数,内部有三个状态,分别如下所示:pendingresolvedrejected而要想将某个promise实例从初始的pending状态改变为resolved或者rejected状态则必须要通过resolve()或者reject()这两个方法,而需要注意的是promise实例的状态改变是不可逆的,因此在改变为resolved或者rejected之后后续的改变状态的操作会因此而无效在Promsie原型对象中含有then
2022-03-10 14:31:31
408
原创 Vue框架-双向绑定
文章目录双向绑定流程双向绑定流程Vue.js 采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。主要分为以下几个步骤:对需要observe的数据对象进行递归遍历,包括子属性对象的属性上都添加setter和getter,之后当给这个对象的某个值进行赋值时就会触发setter,从而会通知dep进行依赖更新,从而监听到数据变化compile解析模板指令,将模板中的变
2022-02-27 00:32:26
131
原创 JS系列-this以及手写apply、call、bind函数
文章目录一、this二、手写apply、call、bind1.apply2.call3.bind一、thisthis 是执行上下文中的一个属性,它指向最后一次调用这个方法的对象。在实际开发中,this 的指向可以通过四种调用模式来判断。第一种是函数调用模式,当一个函数不是一个对象的属性时,直接作为函数来调用时,this 指向全局对象第二种是方法调用模式,如果一个函数作为一个对象的方法来调用时,this 指向这个对象第三种是构造器调用模式,如果一个函数用 new 调用时,函数执行前会新创建一个对
2022-02-18 23:50:54
375
原创 TCP协议-三次握手与四次挥手
文章目录前言一、TCP协议二、连接与释放1.三次握手2.四次挥手总结前言本文章用于复盘自己在学习TCP协议的三次握手以及四次挥手的心得体会一、TCP协议定义:TCP的全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP 是面向连接的、可靠的流协议(流就是指不间断的数据结构)它有以下几个特点:面向连接面向连接,是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础仅支持单播传输每条
2022-02-10 17:02:18
1487
原创 JS系列-闭包
闭包相关概念在相关的书籍《javascript高级程序设计》中对闭包的描述是这样的:闭包,其实是一种语言特性,它是指的是程序设计语言中,允许将函数看作对象,然后能像在对象中的操作般在函数中定义实例(局部)变量,而这些变量能在函数中保存到函数的实例对象销毁为止,其它代码块能通过某种方式获取这些实例(局部)变量的值并进行应用扩展。简单的写一个代码例子即可了解相关内容:function test(){ var inner = '我是test函数内部的变量'; return function pg(){
2022-02-02 21:34:27
762
原创 数据结构与算法-数学-例题1
剑指 Offer 14- II. 剪绳子 II题目:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]k[1]…*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。解题思路:使用循环求余
2022-01-24 22:00:24
124
原创 JS系列-原型链问题
原型与原型链JavaScript中使用构造函数来新建一个对象的,每一个构造函数的内部都有一个prototype属性,它的属性值是一个对象(也叫做`原型对象`),它包含了可以由该构造函数的所有实例共享的属性和方法。当使用构造函数新建一个对象后,在这个对象的内部将包含一个指针,这个指针会指向构造函数的 prototype属性对应的值,在ES5 中这个指针被称为对象的原型对象。一般来说不应该能够获取到这个值的,但是现在浏览器中都实现了_proto_属性来访问这个属性,但是最好不要使用这个属性,因为它不是规范
2022-01-19 15:52:36
705
原创 JS系列-for of与for in之间的区别
如今有for-in循环和for-of循环两种增强型循环。for-in是ES5标准,遍历的是key(可遍历对象、数组或字符串的key);for-of是ES6标准,遍历的是value(可遍历对象、数组或字符串的value)for-in代码示例:var arr = [1, 2, 4, 5, 7];for (let index in arr) { console.log(arr[index]);}使用for-in可以遍历数组,但是会存在以下问题:1.index索引为字符串型数字(注意,非
2022-01-13 12:00:25
422
原创 Vue3-proxy
@[TOC]目录Proxy定义MDN中Proxy对象是用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。通俗来说则是在对一个目标对象的操作之前进行拦截,与旧版本的Object.defineProperty()相类似,对外界的操作进行过滤改写,修改对于目标对象操作的默认行为,这样一来就可以不再直接操作对象本身,而是通过proxy封装后的代理对象来间接操作目标对象,达到对应的操作目的let obj = { a : 1}let proxyObj = new Proxy(o
2022-01-11 00:18:39
2237
原创 Vue框架学习系列-VueRouter
vue-router路由模式有两种:1:hash:路径带#符号,如 http://localhost/#/login2:history: 路径不带#符号,如 http://localhost/login修改路由配置代码如下:export default new Router({ mode: 'history', routes: [ ]});路由钩子路由导航守卫beforeEach:// 挂载路由导航守卫router.beforeEach((to, from, next)
2022-01-10 14:08:19
278
原创 数据结构与算法-动态规划-例题1
剑指 Offer 10- II. 青蛙跳台阶问题问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。题解代码:`class Solution { public int numWays(int n) { if(n < 2) return 1; int a = 1; int b = 1; int lo
2022-01-10 14:05:01
211
原创 数据结构与算法-深度优先搜索(DFS)-例题1
剑指 Offer 27. 二叉树的镜像问题:请完成一个函数,输入一个二叉树,该函数输出它的镜像。题解代码:class Solution { public TreeNode mirrorTree(TreeNode root) { if(root == null) return null; TreeNode tempNode = root.left; root.left = mirrorTree(root.right); root.right = mirror
2022-01-10 14:01:11
273
原创 微信小程序学习笔记(一)
微信小程序小tips1.使用Async-await方法(需结合promise进行使用)将小程序中的异步请求变为同步请求,当调用多个异步请求且需要进行串行执行时会重复进行嵌套,代码结构较为混乱,因此使用该方法可以将异步请求变为同步,便于代码书写在页面中使用之前需要impot一个文件例:import regeneratorRuntime from '../../lib/runtime/runtime'文件需要自己去github上下载、创建vue项目后使用npm进行命令行指令下载或者是通过粘贴文件中
2022-01-10 13:52:52
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人