自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 react之redux、react-redux

ReduxRedux是JavaScript应⽤的状态容器。它保证程序⾏为⼀致性且易于测试。安装npm i redux -S过程:需要一个store来存储数据store里的reducer初始化state并定义state修改规则通过dispatch一个action来提交对数据的修改action提交到reducer函数里,根据传入的action的type,返回的新的stateredux概念:createStore: 创建storereducer: 初始化、修改状态函数getStat

2020-06-19 21:27:08 175

原创 React组件优化

组件优化核心:减少渲染,只渲染需要被渲染的组件。定制组件的shouldComponentUpdate钩子通过shouldComponentUpdate进行优化import React, { Component } from 'react'export default class OptimizeCmp extends Component { constructor(props) { super(props); this.state = { commentList:

2020-06-18 16:56:59 241

原创 React组件化

React组件化组件化的优点:增强代码重用性,提高开发效率简化调试步骤,提升整个项目的可维护性便于协同开发降低耦合性context组件跨层级通信。React中使用Context实现祖代组件向后代组件传值。Vue中的provide和inject来源于Context。Context中存在两个角色:Provider: 提供数据的组件Consumer:获取数据的组件使用:// context.js import React from 'react'export const Co

2020-06-18 12:08:33 235

原创 每天一道算法题(二十三)

不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -> 向下 -> 向右向下 -> 向右

2020-06-16 23:07:08 182

原创 React入门概念

React安装全局安装脚手架create-react-appnpm i -g create-react-app创建项目create-react-app projectName打开项目cd projectName启动项目npm start项目默认的配置项是隐藏的,通过执行以下命令可以暴露配置项npm run eject文件结构React和ReactDomReact负责逻辑控制,数据 -> VDOM,创建虚拟DOMreact中的的JSX语法J

2020-06-16 13:51:48 200

原创 koa实战 - 鉴权

session-cookie方式const http = require('http')const app = http.createServer((req, res) => { console.log(`cookie: ${req.headers.cookie}`) res.setHeader('Set-Cookie', 'cookie=admin'); res.end('set cookie') })app.listen(3000, () => { console.l

2020-06-15 14:57:05 370

原创 每天一道算法题(二十二)

岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3解释: 每座岛屿只能由水平和/或竖直方向上相邻的陆地连接而成。采取遍历的方式,将所有连接的1的点都清零之后加1,之后继续遍

2020-06-14 22:35:59 208

原创 koa2源码学习

koaKoa 是⼀个新的 web 框架, 致⼒于成为 web 应⽤和 API 开发领域中的⼀个更⼩、更富有表现⼒、更健壮的基⽯。特点轻量,无捆绑中间件架构优雅的API设计增强的错误处理安装npm i koa -s

2020-06-14 21:53:28 235

原创 Node.js基础

特性非阻塞I/O事件驱动与前端的不同js的核心语法不变前端 BOM DOM后端 fs、http、buffer、event、os在官网下载对应版本进行安装即可安装好后输入node进入node命令行新建一个js文件consle.log('hi node');输入node filename即可运行该文件,每次修改文件后需要重新启动。安装nodemon可以监听文件的改动,自动重启npm i -g nodemon输入nodemon filename启动。核心APIfs-文

2020-06-13 16:47:15 164

原创 解决本地文件无法跨域访问的问题

Access to XMLHttpRequest at 'file://.....' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.对于file协议来说,浏览器是不支持跨域的。当然有很多方法可以搭建一个本地服务器。如果只是简单写一个htm

2020-06-12 23:08:17 6669

原创 每天一道算法题(二十一)

零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1说明:你可以认为每种硬币的数量是无限的。从1开始,找到每个金额最少的硬币组合,进行累加至要求的总金额。/**

2020-06-11 23:16:06 403

原创 每天一道算法题(二十)

有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true

2020-06-09 23:05:09 131

原创 每天一道算法题(十九)

交换一次的先前排列给你一个正整数的数组 A(其中的元素不一定完全不同),请你返回可在 一次交换(交换两数字 A[i] 和 A[j] 的位置)后得到的、按字典序排列小于 A 的最大可能排列。如果无法这么操作,就请返回原数组。示例 1:输入:[3,2,1]输出:[3,1,2]解释:交换 2 和 1示例 2:输入:[1,1,5]输出:[1,1,5]解释:这已经是最小排列示例 3:输入:[1,9,4,6,7]输出:[1,7,4,6,9]解释:交换 9 和 7示例 4:

2020-06-03 22:57:22 229

原创 vue源码学习之双向绑定原理

双向绑定原理v-model简单来讲是一个语法糖,可以使得代码变得更加简洁。例如:<input v-model="name" /><!--相当于--><input :value = "$attrs.value" @input=“$emit('input',$event.target.value)” />v-model相当于在input上指定了一个:value和@input,也就是值的传递和事件的监听。从生成的render函数来看(function anon

2020-06-03 15:23:54 324

原创 每天一道算法题(十八)

加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。这道题很简单,只需要考虑到9这个情况就可以了。/** * @param {number[]} digits

2020-06-02 23:15:31 207

原创 vue源码学习之模板编译

模板编译模板编译的主要目的是将模板(template)转换为渲染函数(render)vue中使用模板编译的必要性Vue 2.0需要用到VNode描述视图以及各种交互,手写显然不切实际,因此用户只需编写类似HTML代码的Vue模板,通过编译器将模板转换为可返回VNode的render函数。模板编译带编译器的版本中,可以使用template或el的方式声明模板。<div id="app"> <h1>Vue模板编译</h1> <p>{{name}

2020-06-02 18:36:55 267

原创 vue源码学习之组件化

组件化例子Vue.component('Com1', { template: '<div>component</div>' })组件声明Vue.component()或者是components选项src/core/global-api/assets.jsinitAssetRegisters()export function initAssetRegisters (Vue: GlobalAPI) { // 声明组件(可以是指令,组件,过滤器) ASSET_TYPES

2020-06-02 16:36:13 201

原创 每天一道算法题(十七)

二叉树的最小深度最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最小深度 2.采用递归的方法去找寻每个节点,记录深度。/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = n

2020-06-01 22:50:36 173

原创 vue源码学习之虚拟DOM

虚拟DOMVirtual DOM,是js对象,能够描述DOM结构和关系。应用的各种状态变化会作用于虚拟DOM,最终映射到真实DOM上。具有的优点虚拟DOM轻量、快速:当发生变化时通过新旧虚拟DOM的比对就可以得到最小的DOM操作量,从而提升性能和用户体验。跨平台:将虚拟DOM更新转换为不同运行时特殊操作实现跨平台。兼容性:还可以加入兼容性代码增强操作的兼容性。在Vue中的必要性vue 1.0中有细粒度的数据变化侦测,它是不需要虚拟DOM的,但是细粒度造成了大量开销,这对于大型项目来说是不

2020-06-01 18:14:00 372

uniapp 离线SDK Android-SDK@4.24.82145-20240723

由于百度网盘下载太慢了,为了方便大家下载,因此上传至 CSDN 供大家下载。 注意,在下载前记得查看版本号,当前资源对应 HBuilderX(4.24.2024072208)。

2024-08-30

uniapp 请求代码封装

在uniapp发送请求跟web的不同,而且通过uni.request这个方法进行调用。该资源是将uniapp 请求代码进行了封装,在uniapp上实现一个类似axios的请求方式。

2023-11-08

2022年JavaScript常见面试题

2022年JavaScript常见面试题

2023-07-15

browser.zip

引入browser.js可以使得ie兼容es6语法,browser.js为开发环境使用,browser.min.js为线上使用

2020-03-25

空空如也

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

TA关注的人

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