- DvaJS学习(dva = React-Router + Redux + Redux-saga)
Free Joe
React
我们来介绍一下,dva出自于暴雪出品的一款游戏《守望先锋》,援引官方的角色介绍:D.Va拥有一部强大的机甲,它具有两台全自动的近距离聚变机炮、可以使机甲飞跃敌人或障碍物的推进器、还有可以抵御来自正面的远程攻击的防御矩阵。然后呢,蚂蚁金服的一位架构师sorrycc很迷这位美女,正巧刚开发了一款前端框架没有名字,作为一个向女神献礼的项目,dva框架就此诞生。我们先看看React没有解决的问题React
- 【React】Dva.js上手入门教程
全栈前端老曹
reactjavascriptreact.js前端dvadva.jsumiantd-pro
Dva.js上手入门教程(基于React)一、Dva.js简介Dva.js是一个基于React和Redux的轻量级前端框架,封装了Redux、Redux-saga和React-router,简化了状态管理和数据流的处理。它通过约定优于配置的方式,让开发者可以更专注于业务逻辑的实现。二、安装与初始化项目1.安装Node.js和npm确保你的开发环境已经安装了Node.js(建议使用LTS版本)和np
- 【React】路由器 React-Router
Moon里
Reactreact.js
安装路由模式路由组件和属性(Link、NavLink、Outlet、Routes、Navigate、element)路由传参(Hook:useParams、useSearchParams)路由跳转(Hook:useNavigate)路由的构建前端路由指的是一种将浏览器URL与特定页面或视图关联起来的技术。在传统的Web开发中,当用户点击链接或者输入URL时,服务器会接收到请求并返回相应的HTML页
- React(八)React-Router
太阳花ˉ
React学习react.js前端
基本使用1.安装:npminstallreact-router-dom2.设置路由模式:HashRouter/BrowserRouterimportReactfrom'react';importReactDOMfrom'react-dom/client';importAppfrom'./App';import{HashRouter}from'react-router-dom';constroot=
- Module ‘“../node_modules/@types/react-router“‘ has no exported member ‘withRouter‘.
Patrick Sun
前端typescript
造成原因项目typescript是3.9的版本,@types/react-router依赖也没有固定版本,导致@types/react-router升级以后,采用了3.9不支持的语法,导致报错解决在package.json里面固定@types/react-router依赖版本
- 使用vite+react+ts+Ant Design开发后台管理项目(五)
吕彬-前端
react.jsjavascript前端
前言本文将引导开发者从零基础开始,运用vite、react、react-router、react-redux、AntDesign、less、tailwindcss、axios等前沿技术栈,构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导,文章旨在为开发者揭示如何利用这些技术工具,从项目构思到最终实现的全过程,提供清晰的开发思路和实用的技术应用技巧。项目gitee地址:lbking666
- React-router 6
晓静呐~
reactreact.js前端
1.概述ReactRouter以三个不同的包发布到npm上,它们分别为:react-router:路由的核心库,提供了很多的:组件、钩子。react-router-dom:包含react-router所有内容,并添加一些专门用于DOM的组件,例如等。react-router-native:包括react-router所有内容,并添加一些专门用于ReactNative的API,例如:等。与React
- 一个基于 React + SpringBoot 的在线多功能问卷系统(附源码)
程序员-李旭亮
Java项目源码react.jsspringboot前端
简介:一个基于React+SpringBoot的在线多功能问卷系统前端技术栈:React、React-Router、Webpack、Antd、Zustand、Echarts、DnDKit后端技术栈:SpringBoot、MySQL、MyBatisPlus、Redis项目源码下载链接:https://pan.quark.cn/s/2e32786e0c61部分页面静态预览:主要前端业务需求与技术突破:
- [email protected]系列-Redirect组件
kiramario(长期接受兼职机会)
学习react-routerreact
很久没有碰前端,最近重新学习react-router,发现版本升级到了4.2.0,使用方法都做出了相应的调整。Redirect组件开发中遇到的需求,ajax请求返回状态如果成功则跳转成功页面(很常见吧)。由于是单页应用,跳转前后用Route组件渲染,跳转用Redirect进行控制。测试demo结构如下:其中index.html,server.js和wepack.config.dev.js是我在写w
- React路由 路由传参 路由上下文 组件跳转
leehaipei
Reactreactreactjs
官方网站一、简介路由最基本的职责就是当页面的访问地址与Route上的path匹配时,就渲染出对应的UI界面(组件)。实现SPA应用,页面切换不会刷新页面,内容局部更新。同时路由也可以带货(传参)。二、react-router提供了两种路由模块1.React-Router提供了一些router的核心API,包括Router,Route,Switch等,但是它没有提供DOM操作进行跳转的API。2.R
- React-Router 安装及使用
书生丶
安装
[email protected]引入核心路由器组件import{BrowserRouter,HashRouter}from'react-router-dom'BrowserRouter:localhost:xxxx/user/liuna服务器可知所有请求细节HashRouter:localhost:xxxx/#/user/liuna使用#瞄点纯前端跳转,服务器不知
- 【 React 】对React Router的理解?常用的Router 组件有哪些
前端小超人rui
React面试题react.js前端前端框架
1react-router是什么react-router等前端路由的原理大致相同,可以实现无刷新的条件下切换显示不同的页面路由的本质就是页面的URL发生改变时,页面的显示结果可以根据URL的变化而变化,但是页面不会刷新因此,可以通过前端路由可以实现单页(SPA)应用react-router主要分成了几个不同的包:react-router:实现了路由的核心功能react-router-dom:基于r
- react【六】 React-Router
KIKIo_
reactreact.jsjavascript前端
文章目录1、Router1.1路由1.2认识React-Router1.3Link和NavLink1.4Navigate1.5NotFound页面配置1.6路由的嵌套1.7手动路由的跳转1.7.1在函数式组件中使用hook1.7.2在类组件中封装高阶组件1.8动态路由传递参数1.9路由的配置文件以及懒加载1、Router1.1路由1.2认识React-Routernpminstallreact-r
- react-router
我竟无言以对_1202
react-routerReact-router提供了一些router的核心api,包括Router,Route,Switch等,但是它没有提供dom操作进行跳转的api。react-router-domReact-router-dom提供了BrowserRouter,Route,Link等api,我们可以通过dom的事件控制路由。例如点击一个按钮进行跳转,大多数情况下我们是这种情况,所以在开发过
- 腾讯地图开发
芒果加奶
一、开发环境react全家桶(react,react-router,redux)二、功能定位、省市地图切换、打点、周边搜索腾讯地图三、开发1、加载腾讯地图——利用script标签特性loadMapScript=()=>{returnnewPromise(function(resolve,reject){window.init=function(){resolve(window.qqMap);};v
- React-Router完成后台管理系统登陆功能
哟西大人1
此文仅通过后台管理系统登陆的demo来讲解React-Router的使用,通过React-Router来实现页面跳转功能安装依赖安装react-router-dom依赖包npminstall--savereact-router-dom页面使用这里我们通过一个后台系统的路由功能来使用react-router-dom中的路由功能以及什么是BrowserRouter,Route和Link后台系统路由功能
- withRouter的作用场景
风起时_bb2c
作用:把不是通过路由切换过来的组件中,将react-router的history、location、match三个对象传入props对象上,例如reactapp.js这个组件一般是首页,不是通过路由跳转过来的,而是直接从浏览器中输入地址打开的,如果不使用withRouter此组件的this.props为空,没法执行props中的history、location、match等方法。设置withRou
- React Router 4.0学习
lmmy123
引用react-router还是react-router-dom?只需引用react-router-dom这个包就行了。当然,如果搭配redux,你还需要使用react-router-redux。组件一个使用了HTML5historyAPI的高阶路由组件,保证你的ui界面和url保持同步组件属性:basename:string作用:为所有位置添加一个基准URL使用场景:假如你需要把页面部署到服务器
- react利用react-activation实现子路由缓存
QingHan_wow
react.js缓存javascript
1.下载依赖yarnaddreact-activation2.父路由里的代码importReact,{FunctionComponent,cloneElement}from'react'importStylesfrom'./layout.less'import{IRouteComponentProps}from'umi'import{Switch,Route}from'react-router';
- react+antd学习笔记 (1)
daisy前端小白
react学习笔记
1、安装yarn和create-react-app,用create-react-app创建自己的项目。2、使用react和antd去完成网站的构建,发现需要使用react-router的配合使用,在最新版本中react-router被拆分成了几部分,主要使用了react-router的react-router-dom来实现浏览器的渲染,但是这个库里router只能有一个子元素,所以使用了dom元素
- react-router4相关属性api介绍
cbw100
react-router非常复杂整体,比vue-router强大很多,好好研究,对你自身能力提高很有帮助1.安装cnpminstallreact-router--save包含reactrouter核心cnpminstallreact-router-dom--save包含reactrouter的dom绑定2.BrowserRouterBrowserRouter是react路由的容器相关属性如下bas
- react-router与react-router-dom的区别
家有饿犬和聋猫
写法上的区别:写法1:import{Swtich,Route,Router,HashHistory,Link}from'react-router-dom';写法2:import{Switch,Route,Router}from'react-router';import{HashHistory,Link}from'react-router-dom';react-router实现了路由的核心功能rea
- React + React-router + Redux 的前端代码框架
Eternal丶星空
React+React-router+Redux的前端代码框架此前的教程中,分别在介绍React-router和Redux的时候,都介绍了各自的代码文件结构特点。现在将两者结合起来,就是我们即将进行实际项目开发的代码框架了。这两的代码结合其实没有太多冲突,只有./app/index.jsx一个文件中有看似重叠的部分,其实原理还是React组件。render(,document.getElement
- react 路由react-router跳转 / react-router-dom 参数的传递
web前端 zxp
reactreactreact-router
路由跳转⬅⬅⬅⬅本文主要是路由的传参文档gitHub介绍网址react-router官网react-router中文文档一旦通过Route组件的component属性指明的组件,那么这个路由组件上面就会有路由相关的apilocationhistorymatch在路由跳转的时候传递参数//传参{return}}>//接收参数console.log(this.props.xxx)使用render渲染进
- react-router中的exact和strict
前端妹子ice
前言每次用配置react路由都会考虑是否应该给给组件加上exact或strict。下面妹子将于自认为比较清晰的方式列举出来什么场景需要加和不加。本文案例主要以react-routerv4+为主,v5版本是因为发布时版本依赖有问题而直接跳成这个大版本的,用法和4完全相同,就是这么任性>//子路由,tuanDetail组件里strictstrict默认为false,如果为true时,路由后面有斜杠而u
- React 路由 V5(完整版)
噢,我明白了
react组件状态react.jsjavascriptrouter
一.什么是路由?指路径url与不同的页面和内容进行相应匹配,可以友好的解决Component到url之间的同步映射关系二.路由的使用(1).下载react-router指令(指定v5版本):npminstallreact-router-dom@5(2).app内引入import{HashRouter,Route}from'react-router-dom'//hash模式,路径中会带#号//一级路
- react-router中match对象
fullyouth
react
match对象match是一个匹配路径参数的对象,它有一个属性params,里面的内容就是路径参数,除常用的params属性外,它还有url、path、isExact属性。通过this.props.match.params.id获取了路径的匹配参数。Match的获取方式:在Routecomponent中,组件通过this.props.match获取。在Routerender和Routechildr
- React-router通俗易懂版
钱罗罗_
前言:在百度搜了很久,也看了很久,就是遇到情况不知道杂用,so我要去官网撸一遍,等我一会~~区分图ReactRouter4.0不是把所有的router整合到一个文件中,而是分布在各自所需要的地方。1.react-router-domreact-router-dom用于DOM绑定的ReactRouter;react-router-dom包比react-dom多出两个DOM类组件(和),所以使用的时候
- React07-路由管理器react-router-dom(v6)
晴雪月乔
reactreact.jsjavascript前端
react-router是一个流行的用于React应用程序路由的库。它使我们能够轻松定义应用程序的路由,并将它们映射到特定的组件,这样可以很容易地创建复杂的单页面应用,并管理应用程序的不同视图。react-router是基于React构建的,因此与其他React库和工具集成得很好。它在许多React应用程序中广泛使用,并被认为是React中最佳实践的路由。一、react-router-dom安装和
- 利用 React 高阶组件实现一个面包屑导航
__Duang__
什么是React高阶组件React高阶组件就是以高阶函数的方式包裹需要修饰的React组件,并返回处理完成后的React组件。React高阶组件在React生态中使用的非常频繁,比如react-router中的withRouter以及react-redux中connect等许多API都是以这样的方式来实现的。使用React高阶组件的好处在工作中,我们经常会有很多功能相似,组件代码重复的页面需求,通
- tomcat基础与部署发布
暗黑小菠萝
Tomcat java web
从51cto搬家了,以后会更新在这里方便自己查看。
做项目一直用tomcat,都是配置到eclipse中使用,这几天有时间整理一下使用心得,有一些自己配置遇到的细节问题。
Tomcat:一个Servlets和JSP页面的容器,以提供网站服务。
一、Tomcat安装
安装方式:①运行.exe安装包
&n
- 网站架构发展的过程
ayaoxinchao
数据库应用服务器网站架构
1.初始阶段网站架构:应用程序、数据库、文件等资源在同一个服务器上
2.应用服务和数据服务分离:应用服务器、数据库服务器、文件服务器
3.使用缓存改善网站性能:为应用服务器提供本地缓存,但受限于应用服务器的内存容量,可以使用专门的缓存服务器,提供分布式缓存服务器架构
4.使用应用服务器集群改善网站的并发处理能力:使用负载均衡调度服务器,将来自客户端浏览器的访问请求分发到应用服务器集群中的任何
- [信息与安全]数据库的备份问题
comsci
数据库
如果你们建设的信息系统是采用中心-分支的模式,那么这里有一个问题
如果你的数据来自中心数据库,那么中心数据库如果出现故障,你的分支机构的数据如何保证安全呢?
是否应该在这种信息系统结构的基础上进行改造,容许分支机构的信息系统也备份一个中心数据库的文件呢?
&n
- 使用maven tomcat plugin插件debug关联源代码
商人shang
mavendebug查看源码tomcat-plugin
*首先需要配置好'''maven-tomcat7-plugin''',参见[[Maven开发Web项目]]的'''Tomcat'''部分。
*配置好后,在[[Eclipse]]中打开'''Debug Configurations'''界面,在'''Maven Build'''项下新建当前工程的调试。在'''Main'''选项卡中点击'''Browse Workspace...'''选择需要开发的
- 大访问量高并发
oloz
大访问量高并发
大访问量高并发的网站主要压力还是在于数据库的操作上,尽量避免频繁的请求数据库。下面简
要列出几点解决方案:
01、优化你的代码和查询语句,合理使用索引
02、使用缓存技术例如memcache、ecache将不经常变化的数据放入缓存之中
03、采用服务器集群、负载均衡分担大访问量高并发压力
04、数据读写分离
05、合理选用框架,合理架构(推荐分布式架构)。
- cache 服务器
小猪猪08
cache
Cache 即高速缓存.那么cache是怎么样提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?我在近期开发的项目中有所体会,写下来当作总结也希望能跟大家一起探讨探讨,有错误的地方希望大家批评指正。
1.Cache 是怎么样工作的?
Cache 是分配在服务器上
- mysql存储过程
香水浓
mysql
Description:插入大量测试数据
use xmpl;
drop procedure if exists mockup_test_data_sp;
create procedure mockup_test_data_sp(
in number_of_records int
)
begin
declare cnt int;
declare name varch
- CSS的class、id、css文件名的常用命名规则
agevs
JavaScriptUI框架Ajaxcss
CSS的class、id、css文件名的常用命名规则
(一)常用的CSS命名规则
头:header
内容:content/container
尾:footer
导航:nav
侧栏:sidebar
栏目:column
页面外围控制整体布局宽度:wrapper
左右中:left right
- 全局数据源
AILIKES
javatomcatmysqljdbcJNDI
实验目的:为了研究两个项目同时访问一个全局数据源的时候是创建了一个数据源对象,还是创建了两个数据源对象。
1:将diuid和mysql驱动包(druid-1.0.2.jar和mysql-connector-java-5.1.15.jar)copy至%TOMCAT_HOME%/lib下;2:配置数据源,将JNDI在%TOMCAT_HOME%/conf/context.xml中配置好,格式如下:&l
- MYSQL的随机查询的实现方法
baalwolf
mysql
MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,
- JAVA的getBytes()方法
bijian1013
javaeclipseunixOS
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同OS下,返回的东西不一样!
String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:
byte[] b_gbk = "
- AngularJS中操作Cookies
bijian1013
JavaScriptAngularJSCookies
如果你的应用足够大、足够复杂,那么你很快就会遇到这样一咱种情况:你需要在客户端存储一些状态信息,这些状态信息是跨session(会话)的。你可能还记得利用document.cookie接口直接操作纯文本cookie的痛苦经历。
幸运的是,这种方式已经一去不复返了,在所有现代浏览器中几乎
- [Maven学习笔记五]Maven聚合和继承特性
bit1129
maven
Maven聚合
在实际的项目中,一个项目通常会划分为多个模块,为了说明问题,以用户登陆这个小web应用为例。通常一个web应用分为三个模块:
1. 模型和数据持久化层user-core,
2. 业务逻辑层user-service以
3. web展现层user-web,
user-service依赖于user-core
user-web依赖于user-core和use
- 【JVM七】JVM知识点总结
bit1129
jvm
1. JVM运行模式
1.1 JVM运行时分为-server和-client两种模式,在32位机器上只有client模式的JVM。通常,64位的JVM默认都是使用server模式,因为server模式的JVM虽然启动慢点,但是,在运行过程,JVM会尽可能的进行优化
1.2 JVM分为三种字节码解释执行方式:mixed mode, interpret mode以及compiler
- linux下查看nginx、apache、mysql、php的编译参数
ronin47
在linux平台下的应用,最流行的莫过于nginx、apache、mysql、php几个。而这几个常用的应用,在手工编译完以后,在其他一些情况下(如:新增模块),往往想要查看当初都使用了那些参数进行的编译。这时候就可以利用以下方法查看。
1、nginx
[root@361way ~]# /App/nginx/sbin/nginx -V
nginx: nginx version: nginx/
- unity中运用Resources.Load的方法?
brotherlamp
unity视频unity资料unity自学unityunity教程
问:unity中运用Resources.Load的方法?
答:Resources.Load是unity本地动态加载资本所用的方法,也即是你想动态加载的时分才用到它,比方枪弹,特效,某些实时替换的图像什么的,主张此文件夹不要放太多东西,在打包的时分,它会独自把里边的一切东西都会集打包到一同,不论里边有没有你用的东西,所以大多数资本应该是自个建文件放置
1、unity实时替换的物体即是依据环境条件
- 线段树-入门
bylijinnan
java算法线段树
/**
* 线段树入门
* 问题:已知线段[2,5] [4,6] [0,7];求点2,4,7分别出现了多少次
* 以下代码建立的线段树用链表来保存,且树的叶子结点类似[i,i]
*
* 参考链接:http://hi.baidu.com/semluhiigubbqvq/item/be736a33a8864789f4e4ad18
* @author lijinna
- 全选与反选
chicony
全选
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>全选与反选</title>
- vim一些简单记录
chenchao051
vim
mac在/usr/share/vim/vimrc linux在/etc/vimrc
1、问:后退键不能删除数据,不能往后退怎么办?
答:在vimrc中加入set backspace=2
2、问:如何控制tab键的缩进?
答:在vimrc中加入set tabstop=4 (任何
- Sublime Text 快捷键
daizj
快捷键sublime
[size=large][/size]Sublime Text快捷键:Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:
- php 引用(&)详解
dcj3sjt126com
PHP
在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容 复制代码代码如下:
<?
$a="ABC";
$b =&$a;
echo
- SVN中trunk,branches,tags用法详解
dcj3sjt126com
SVN
Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是svn://proj/|+-trunk+-branches+-tags这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。
- 对软件设计的思考
e200702084
设计模式数据结构算法ssh活动
软件设计的宏观与微观
软件开发是一种高智商的开发活动。一个优秀的软件设计人员不仅要从宏观上把握软件之间的开发,也要从微观上把握软件之间的开发。宏观上,可以应用面向对象设计,采用流行的SSH架构,采用web层,业务逻辑层,持久层分层架构。采用设计模式提供系统的健壮性和可维护性。微观上,对于一个类,甚至方法的调用,从计算机的角度模拟程序的运行情况。了解内存分配,参数传
- 同步、异步、阻塞、非阻塞
geeksun
非阻塞
同步、异步、阻塞、非阻塞这几个概念有时有点混淆,在此文试图解释一下。
同步:发出方法调用后,当没有返回结果,当前线程会一直在等待(阻塞)状态。
场景:打电话,营业厅窗口办业务、B/S架构的http请求-响应模式。
异步:方法调用后不立即返回结果,调用结果通过状态、通知或回调通知方法调用者或接收者。异步方法调用后,当前线程不会阻塞,会继续执行其他任务。
实现:
- Reverse SSH Tunnel 反向打洞實錄
hongtoushizi
ssh
實際的操作步驟:
# 首先,在客戶那理的機器下指令連回我們自己的 Server,並設定自己 Server 上的 12345 port 會對應到幾器上的 SSH port
ssh -NfR 12345:localhost:22
[email protected]
# 然後在 myhost 的機器上連自己的 12345 port,就可以連回在客戶那的機器
ssh localhost -p 1
- Hibernate中的缓存
Josh_Persistence
一级缓存Hiberante缓存查询缓存二级缓存
Hibernate中的缓存
一、Hiberante中常见的三大缓存:一级缓存,二级缓存和查询缓存。
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存是由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存
- 对象关系行为模式之延迟加载
home198979
PHP架构延迟加载
形象化设计模式实战 HELLO!架构
一、概念
Lazy Load:一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。
延迟加载貌似很简单,就是在数据需要时再从数据库获取,减少数据库的消耗。但这其中还是有不少技巧的。
二、实现延迟加载
实现Lazy Load主要有四种方法:延迟初始化、虚
- xml 验证
pengfeicao521
xmlxml解析
有些字符,xml不能识别,用jdom或者dom4j解析的时候就报错
public static void testPattern() {
// 含有非法字符的串
String str = "Jamey친ÑԂ
- div设置半透明效果
spjich
css半透明
为div设置如下样式:
div{filter:alpha(Opacity=80);-moz-opacity:0.5;opacity: 0.5;}
说明:
1、filter:对win IE设置半透明滤镜效果,filter:alpha(Opacity=80)代表该对象80%半透明,火狐浏览器不认2、-moz-opaci
- 你真的了解单例模式么?
w574240966
java单例设计模式jvm
单例模式,很多初学者认为单例模式很简单,并且认为自己已经掌握了这种设计模式。但事实上,你真的了解单例模式了么。
一,单例模式的5中写法。(回字的四种写法,哈哈。)
1,懒汉式
(1)线程不安全的懒汉式
public cla