React学习-Ref
类式组件使用Ref1.字符串形式的ref
123456789101112131415class Demo extends React.Component{ showData = () => { const {input1} = this.refs alert(input1.value) } render(){ return ( <div> <input ref="input1" type="text" placeholder = "点击按钮提示数据"> <button onClick={this.showData}>点我提示数据</button> </div> ) }}
过时API: Str ...
BootStrap学习
介绍Bootstrap 是一个用于快速开发网页和Web应用的前端框架。以下是关于 Bootstrap 的详细介绍:
响应式设计:Bootstrap 提供了一系列的栅格系统、预定义样式和组件,可以轻松创建响应式的布局,确保网站在不同设备上都能有良好的显示效果。
CSS 框架:
包含了重置样式(Normalize.css),使得不同浏览器中的默认样式更加一致。
提供了大量的实用类(Utilities),如文本对齐、浮动、显示隐藏等,可以直接应用于HTML元素。
内置了丰富的组件样式,例如按钮、表单、导航栏、卡片等,开箱即用。
JavaScript 插件:Bootstrap 自带多个基于jQuery的插件,如模态框(Modal)、下拉菜单(Dropdown)、轮播图(Carousel)等交互组件,简化了复杂功能的实现过程。
Sass 支持:除了传统的CSS文件,Bootstrap 还提供了Sass版本,允许开发者自定义主题颜色、间距单位等变量,方便进行个性化定制。
文档与社区支持:官方维护着详细的文档,包含使用指南、示例代码以及API说明;同时拥有庞大的社区资源,遇到问题时很容易找到解 ...
算法学习笔记-ST算法
ST算法:高效解决区间最值查询问题ST算法是基于倍增原理的算法,广泛应用于解决静态空间的 区间最值查询问题(RMQ)。它通过预处理的方式,在**O(n log n)的时间复杂度内构建一个二维表,之后可以在O(1)**的时间复杂度内快速查询任意区间的最值。
什么是静态空间的RMQ问题?给定一个长度为n的静态数列,进行m次查询,每次查询指定区间[L, R](L, R ≤ n),要求返回该区间内的最值(最小值或最大值)。如果采用暴力搜索的方法,逐一比较区间内的每个数,单次查询的复杂度为O(n),m次查询的总复杂度将达到O(mn),效率非常低。
ST算法解决RMQ问题?
ST算法的原理如下:一个大区间若能被两个小区间覆盖,那么大区间的最值等于两个小区间的最值。如图所示,大区间{4,7,9,6,3,6,4,8,7,5}被两个小区间{4,7,9,6,3,6,4,8}和{4,8,7,5}覆盖,大区间的最小值为3,等于两个小区间的最小值min{3,4} = 3。
从以上原理,我们可以得到ST算法的基本思路,包括两个步骤:
(1)把整个数列分为很多个小区间,并提前计算出每个小区间的最值;
(2 ...
React学习-路由
SPA理解SPA (Single Page Application)
基本使用在React中,路由通常使用react-router-dom库来实现。以下是一个基本的路由组件使用示例。
1.安装依赖:
1npm install react-router-dom
2.创建路由组件:在项目中创建一个路由组件,例如App.js
123456789101112131415161718192021222324252627282930313233import React from 'react'import {BrowserRouter,Route,Routes,Link} from 'react-router-dom'//定义一个简单组件const Home = () => <h2>Home</h2>;const About = () => <h2>About</h2>;const Contact = () => <h2>Contact</h2> ...
React学习-消息订阅
React学习-消息订阅原始的消息传递方式在React中,组件之间的消息传递通常有以下几种方式:
父组件传递给子组件:通过props传递数据。
子组件传递给父组件:通过回调函数。
兄弟组件间传递:通常需要借助共同的父组件或使用状态管理工具。
使用PubSubJS实现消息传递PubSubJS是一个轻量级的发布-订阅库,适用于在React应用中实现组件之间的通信,特别是在组件之间没有直接父子关系的情况下。
1. 安装pubsub-js库首先,您需要安装pubsub-js库。运行以下命令:
123bashnpm install pubsub-js
2. 创建发布者组件1234567891011121314151617import React from 'react';import PubSub from 'pubsub-js';const Publisher = () => { const sendMessage = () => { PubSub.publish('MY_TOPIC ...
React学习-配置代理
为什么要配置代理?在React中,通常需要展示后端发送来的数据,前后端分离,下面是一个React请求后端发来的数据的例子
App.jsx
1234567891011121314151617181920import React, { Component } from 'react'import axios from 'axios'export default class App extends Component { getStudentsData = () => { axios.get('http://localhost:5000/students').then( response => {console.log("成功了",response.data)}, error => {console.log("失败了",error)} ) } ...
算法学习笔记
算法学习笔记点击跳转至《算法学习笔记-栈》
点击跳转至《算法学习笔记-链表》
点击跳转至《算法学习笔记-ST算法》
点击跳转至《算法学习笔记-排序算法上篇》
Express学习笔记
Express学习笔记
路由点击跳转至《Express保姆级教程-(1)路由》
中间件点击跳转至《Express保姆级教程-(2)中间件》
编写API点击跳转至《Express保姆级教程-(3)编写API》
算法学习-栈
栈1.介绍栈的特点是“先进先出”,与队列不同,栈只有唯一的一个出入口。
编程中常用的递归就是用栈实现的。栈需要用空间存储,如果栈的深度太大,或者存进 栈的数组太大,那么总数会超过系统为栈分配的空间,就会爆栈导致栈溢出。
编码时通常使用STL stack或者自己手搓。
2. STL stack
操作
说明
stack<Type> s
定义栈,Type 为数据类型
s.push(item)
把item放到栈顶
s.top()
返回栈顶的元素,不会删除
s.pop()
删除栈顶的元素,但不会返回
s.size()
返回栈中元素的个数
s.empty
检查栈是否为空,如果为空则返回true,反之返回false
3.手写栈自己写一个简单的栈。包括一些基本操作:push(),pop(),top(),empty()
1234567891011#include<bits/stdc++.h>const int N = 100100;struct mystack{ char a[N]; int t = 0; void p ...
