1ESModule规范ESModule是目前使用较多的模块化规范,在Vue、React中大量使用,大家应该非常熟悉。TypeScript中的模块化与ES类似。1.1导出模块导出模块有两种方式:按需导出和默认导出。按需导出是使用export关键字,将需要导出的成员(变量、函数、对象等)依次导出:exportconstxxx=''exportconstxxx=()=>{}一个模块中可以有多个按需导出,但只能有一个默认导出。假设默认导出A模块,当B模块直接导入模块A时,其导入的值就是模块A默认导出的值。exportdefault{}1.2导入模块导入按需导出的模块:import{xxx}from'x
爬虫代理IP池及隧道代理目录爬虫代理IP池及隧道代理1.代理IP池1.1简介1.2实现1.3测试2.隧道代理2.1简介2.2实现2.2.1目录结构2.2.2配置文件2.2.3openresty2.3测试日常开发中,偶尔会遇到爬取网页数据的需求,为了隐藏本机真实IP,常常会用到代理IP池,本文将基于openresty与代理IP池搭建更为易用的隧道代理。1.代理IP池1.1简介代理IP池即在数据库中维护一个可用的IP代理队列,一般实现思路如下:定时从免费或收费代理网站获取代理IP列表;将代理IP列表以Hash结构存入Redis;定时检测代理IP的可用性,剔除不可用的代理IP;对外提供API接口用来
爬虫代理IP池及隧道代理目录爬虫代理IP池及隧道代理1.代理IP池1.1简介1.2实现1.3测试2.隧道代理2.1简介2.2实现2.2.1目录结构2.2.2配置文件2.2.3openresty2.3测试日常开发中,偶尔会遇到爬取网页数据的需求,为了隐藏本机真实IP,常常会用到代理IP池,本文将基于openresty与代理IP池搭建更为易用的隧道代理。1.代理IP池1.1简介代理IP池即在数据库中维护一个可用的IP代理队列,一般实现思路如下:定时从免费或收费代理网站获取代理IP列表;将代理IP列表以Hash结构存入Redis;定时检测代理IP的可用性,剔除不可用的代理IP;对外提供API接口用来
第一期·使用Vue3.1+TypeScript+Router+Tailwind.css构建手机底部导航栏、仿B站的登录、注册页面。代码仓库alicepolice/Vue-05(github.com)构建项目新建项目导入bootstrap-icons-vuebootstrap-icons-vue-npm(npmjs.com)导入Tailwind在Vue3和Vite安装TailwindCSS-TailwindCSS中文文档安装VSCODE插件构建目录文件PSC:\Users\小能喵喵喵\Desktop\Vue\Homework\homework2\src>tree/fC:.│App.vue│ind
第一期·使用Vue3.1+TypeScript+Router+Tailwind.css构建手机底部导航栏、仿B站的登录、注册页面。代码仓库alicepolice/Vue-05(github.com)构建项目新建项目导入bootstrap-icons-vuebootstrap-icons-vue-npm(npmjs.com)导入Tailwind在Vue3和Vite安装TailwindCSS-TailwindCSS中文文档安装VSCODE插件构建目录文件PSC:\Users\小能喵喵喵\Desktop\Vue\Homework\homework2\src>tree/fC:.│App.vue│ind
数组数据结构数据结构顾名思义就数据的结构(逻辑结构存储结构算法)存储结构(数据存储的结构方式)线性结构数组(顺序表)队列栈堆链表非线性结构树图hash(散列表)只要是能存数据的容器就必须具备增删改查的方法数组(个人简介就是一个地址吧很多东西都存起来)数组概述:数组固定一类数据的组合(一般情况下我们数组里面的数据类型一致)(多个数据)数组的声明(引用数据类型)1.使用[]声明数组//里面的数据以,进行分隔vararr=[1,2,3]2.使用new关键词进行声明(对象)vararr=newArray(10)//里面参数指定对应的长度如果你没有写表示长度为0vararr2=newArray(1,2,
数组数据结构数据结构顾名思义就数据的结构(逻辑结构存储结构算法)存储结构(数据存储的结构方式)线性结构数组(顺序表)队列栈堆链表非线性结构树图hash(散列表)只要是能存数据的容器就必须具备增删改查的方法数组(个人简介就是一个地址吧很多东西都存起来)数组概述:数组固定一类数据的组合(一般情况下我们数组里面的数据类型一致)(多个数据)数组的声明(引用数据类型)1.使用[]声明数组//里面的数据以,进行分隔vararr=[1,2,3]2.使用new关键词进行声明(对象)vararr=newArray(10)//里面参数指定对应的长度如果你没有写表示长度为0vararr2=newArray(1,2,
344、反转字符串·两两交换给字符串翻个面doge题目链接:https://leetcode.cn/problems/reverse-string/submissions/思路:首尾交换代码实现: 时间复杂度O(n) 空间复杂度O(1)classSolution{public:voidreverseString(vector&s){for(inti=0;i异或运算实现数组交换:classSolution{public:voidreverseString(vector&s){intj=s.size()-1;inti=0;for(;j>i;i++,j--){s[j]^=s[i];s
344、反转字符串·两两交换给字符串翻个面doge题目链接:https://leetcode.cn/problems/reverse-string/submissions/思路:首尾交换代码实现: 时间复杂度O(n) 空间复杂度O(1)classSolution{public:voidreverseString(vector&s){for(inti=0;i异或运算实现数组交换:classSolution{public:voidreverseString(vector&s){intj=s.size()-1;inti=0;for(;j>i;i++,j--){s[j]^=s[i];s
Mybatis配置文件&SQL映射文件1.配置文件-mybatis-config.xml1.1基本说明mybatis的核心配置文件(mybatis-config.xml),它的作用如配置jdbc连接信息,注册mapper等,我们需要对这个配置文件有详细的了解。文档地址:mybatis–MyBatis3|配置配置文档的顶层结构如下:1.2properties(属性)属性可以在外部进行配置,并可以进行动态替换(使用${})。既可以在典型的Java属性文件中配置这些属性,也可以在properties元素的子元素中设置。(1)直接在properties元素的子元素中配置(2)在外部配置,进行动态替换j