不再犹豫
分享是一种美德

React 学习笔记001-本地环境搭建

mrnaas阅读(1380)

1、安装node.js

官网地址:https://nodejs.org/en/

中文网址:http://nodejs.cn/

通过以下命令检查是否安装成功
node -v
npm -v

2、npm包管理工具 基本使用

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
1.允许用户从NPM服务器下载别人编写的第三方包到本地使用。
2.允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
3.允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

本地安装

npm install 包名@版本号
uninstall同理

全局安装

npm install -g 包名@版本号
uninstall同理

其他常见命令
npm list -g 查看安装的包列表
npm list grunt

3、创建自己的第一个react项目

npm install -g create-react-app 安装官方提供的生成react项目demo工具
create-react-app hello-react 在当前目录下创建名为hello-react的项目

如果安装包太慢,可以改为国内的淘宝源
npm config set registry https://registry.npm.taobao.org

cd hello-react 进入项目目录
npm start 运行

4、项目目录结构介绍

yarn.lock 安装包版本号
package.json 运行npm start 命令就是运行该文件里的内容
node_modules 外部包文件
public/index.html 页面上显示的html的内容
public/manfest.json PWA 如果是作为一个app,定义app的图标,主体
src /index.js 项目的执行入口

5、【补充】除了使用npm执行外 还可以用yarn

同理运行命令一样 yarn start

yarn安装教程

参考文章:https://www.jianshu.com/p/2968167c5471

web自动更新版本号清理js、css文件的缓存

mrnaas阅读(1654)

问题描述
在web项目开发过程中,我们经常会引用css、js文件,更新文件后常出现缓存问题(明明更改了代码,在浏览器上访问的时候却没有发生变化),这种情况我们通常采用以下两种解决方案:

1、手动清除浏览器缓存,开发人员F12会清理,但你不能这样要求客户。
2、添加版本号(如 layout.css?v=1),每次稍微修改css、js文件,都要更新v后面的数字,麻烦

解决方案
方法一:可以通过js自动给html添加版本号

<script type="text/javascript">
		document.write("<link rel='stylesheet' type='text/css' href='/css/layout.css?v="+new Date().getTime()+"'>"); 
		document.write('<script  type='text/javascript'  src="http://localhost:8000/aaaa.js?v='+Math.random()+'"><\/script>');
</script>

方法二:若是jsp页面,可以使用java代码生成时间戳(若是jsp页面用方法一也行,但此方法更方便)

 <link rel="stylesheet" type="text/css" href="/css/layout.css?v=<%=System.currentTimeMillis() %>">
   <script type="text/javascript" src="<%=ctx %>/js/idvalid.js?v=<%=System.currentTimeMillis() %>" charset="utf-8"></script>

最优方案

以上方案虽然可以防止 js 的缓存了,但是每次刷新页面都会重新生成一个版本号,重新拉取 js 文件,导致不必要的网络开销,稍微修改了一下,使用了 sessionStorage 和时间戳,基本满足了需求了。
方法三:全web页面通用

<script type="text/javascript">
	var timestamp = new Date().getTime();
	var versionStamp = sessionStorage.version;
	if (versionStamp == null || (timestamp - versionStamp) > 1800000) {
	 sessionStorage.version = timestamp;
	}
	document.write("<script type='text/javascript' src='js/index_tool.js?v="+sessionStorage.version+"'><"+'/'+"script>");
	document.write("<link rel='stylesheet' type='text/css' href='/css/layout.css?v="+sessionStorage.version+"'>"); <\/script>');
</script>

我的建议

本人开发jsp,建议使用最简单的方法二,现在网速都是200M的,还在乎这点网络开销?

?v=<%=System.currentTimeMillis() %>"

————————————————
版权声明:本文为CSDN博主「治政」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xyzz609/java/article/details/89327096

deepin/UOS Conky和Conky Manager

wangtong阅读(1W+)

1、在终端中安装 conky

sudo apt-get install conky

2、安装Conky Manager

wget --no-check-certificate https://github.com/teejee2008/conky-manager/releases/download/v2.4/conky-manager-v2.4-amd64.run

可以自行参考https://github.com/teejee2008/conky-manager/releases/

3、配置权限and 运行

chmod +x ./conky-manager-v2.4-amd64.run   ##配置权限
sudo ./conky-manager-v2.4-amd64.run  ##运行

4、现在开始自定义配置文件

cd ~/.conky/
新建一个文件夹yxconky并进入文件夹新建一个文件yx_conky

写入以下代码
default_color white
double_buffer yes
no_buffers yes
update_interval 1.0
total_run_times 0
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
 
own_window_colour 000000
own_window_argb_visual yes
own_window_argb_value 0
 
double_buffer yes
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders n0
minimum_size 300 1
maximum_width 406
default_color ffffff
default_shade_color 000000
default_outline_color 000000
alignment top_right
gap_x 6
gap_y 5
cpu_avg_samples 2
override_utf8_locale no
uppercase no # set to yes if you want all text to be in uppercase
use_spacer no
use_xft yes
xftfont WenQuanYi Zen Hei:pixelsize=12
override_utf8_locale yes
use_spacer no
minimum_size 300 1
TEXT
${font LCD:style=Bold:pixelsize=40}${alignc}${time %I:%M:%S}
${font LCD:style=Bold:pixelsize=20}${time %Y年%b%d日 星期%a}${alignc}
${font WenQuanYi Zen Hei:pixelsize=14}
 
${color #98c2c7}姓名:  ${color}$alignr 新新点灯
${color #98c2c7}邮箱:  ${color}$alignr 可自己填写
${color #98c2c7}内核:  ${color}$alignr$kernel
${color #98c2c7}已开机: ${color}$alignr$uptime
 
 
${color #98c2c7}CPU使用率: ${color}$cpu%
 
$cpubar
 
 CPU1 温度:  $alignr${exec sensors | grep 'Core 0' | cut -c17-25}
 CPU2 温度: $alignr${exec sensors | grep 'Core 1' | cut -c17-25}
 
${color #98c2c7}CPU占用:${color}
 
 ${top name 1} ${alignr}${top cpu 1} 
 ${top name 2} ${alignr}${top cpu 2} 
 ${top name 3} ${alignr}${top cpu 3} 
 ${top name 4} ${alignr}${top cpu 4} 
 ${top name 5} ${alignr}${top cpu 5} 
 ${top name 6} ${alignr}${top cpu 6} 
 
${color #98c2c7}物理内存:${color}${alignr}$mem / $memmax
 
${membar}
 
${color #98c2c7}根分区: ${color}${alignr}${fs_free /} / ${fs_size /}
 
${fs_bar 4 /}
 
#${color #98c2c7}Home分区: ${color}${alignr}${fs_free /home} / ${fs_size /home}
 
#${fs_bar 4 /home}
 
#${color #98c2c7}网络使用:${color}
 
#下载速度:$alignr${downspeed wlp3s0} k/s
#上传速度:$alignr${upspeed wlp3s0} k/s
${downspeedgraph wlp3s0 324D23 77B753}

保存,并终端输入conky-manager勾选yx_conky文件并进入该程序设置界面打开开机自启动

完成

 

或者直接在终端运行 conky-manager

 

deepin Conky 美化插件

wangtong阅读(1766)

Conky 配合 Conky Manager使用:

1、安装Conky 和 Conky Manager

2、配置文件

default_color white
double_buffer yes
no_buffers yes
update_interval 1.0
total_run_times 0
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

own_window_colour 000000
own_window_argb_visual yes
own_window_argb_value 0

double_buffer yes
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders n0
minimum_size 290 5
maximum_width 406
default_color ffffff
default_shade_color 000000
default_outline_color 000000
alignment top_right
gap_x 6
gap_y 30
cpu_avg_samples 2
override_utf8_locale no
uppercase no # set to yes if you want all text to be in uppercase
use_spacer no
use_xft yes
xftfont KaiTi:pixelsize=12
override_utf8_locale yes
use_spacer no
minimum_size 290 5
TEXT
${font Microsoft YaHei:style=Bold:pixelsize=22}${alignc}${time %H:%M:%S}
${font Microsoft YaHei:pixelsize=16}${alignc}${time %b%d日星期%a}${alignc}
${color #ffa200}${hr 2}
${font Microsoft YaHei:pixelsize=12}
${color #00ffcf}昵称:${color #00ffcf} $alignr 自定义
${color #00ffcf}邮箱: ${color #00ffcf}$alignr 自定义
${color #00ffcf}主机名:${color #00ffcf} $alignr$nodename
${color #00ffcf}内核: ${color #00ffcf}$alignr$kernel
${color #00ffcf}已运行时间: ${color #00ffcf}$alignr$uptime
${color #ffd700}${stippled_hr 1}
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}CPU 0: ${cpu cpu0}% $alignr$acpitemp°C(T)
${color #dcff82}${cpubar 8 cpu0}
${color #00ff1e}CPU 1: ${cpu cpu1}%
${color #dcff82}${cpubar 8 cpu1}
${color #00ff1e}CPU占用:$alignr CPU%
${color #ddaa00} ${top name 1}$alignr${top cpu 1}
${color lightgrey} ${top name 2}$alignr${top cpu 2}
${color lightgrey} ${top name 3}$alignr${top cpu 3}
${color #ffd700}${stippled_hr 1}$color
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}SAM: $mem $alignr${color #db7093}$memperc%
${color #78af78}${membar 8}
${color #00ff1e}内存占用: $alignr MEM%
${color #ddaa00} ${top_mem name 1}$alignr ${top_mem mem 1}
${color lightgrey} ${top_mem name 2}$alignr ${top_mem mem 2}
${color lightgrey} ${top_mem name 3}$alignr ${top_mem mem 3}
${color #ffd700}${stippled_hr 1}$color
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}硬盘读取速度:${alignr}${diskio_read}
${color #00ff1e}硬盘写入速度:${alignr}${diskio_write}
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}磁盘: ${color}${alignr}${fs_used /}/ ${fs_size /}
${color #78af78}${fs_bar 8 /}
${font Microsoft YaHei:pixelsize=12}
${color #00ff1e}网络: $alignr ${color #00ff1e}IP地址: ${color DDAA00}${addr wlp4s0}
${voffset 1}${color #98c2c7} 上传: ${color #db7093}${upspeed wlp4s0}/s ${alignr}${color #98c2c7}总共: ${color #db7093}${totalup wlp4s0}
${voffset 1}${color #98c2c7} 下载: ${color #ddaa00}${downspeed wlp4s0}/s ${alignr}${color #98c2c7}总共: ${color #ddaa00}${totaldown wlp4s0}
${font Microsoft YaHei:pixelsize=12}
${color #ffa200}${hr 2}
${font Microsoft YaHei:pixelsize=20}
${color #00ffcf}${alignc}天行健,君子以自强不息${color #00ffcf}
${color #00ffcf}${alignc}地势坤,君子以厚德载物${color #00ffcf}

 

林清玄:常想一二,不思八九

mrnaas阅读(1598)

1

  朋友买来纸笔砚台,请我题几个字让他挂在新居的客厅补壁。这使我感到有些为难,因为我自知字写得不好看,何况已经有很多年没有写书法了。

  朋友说:“怕什么?挂你的字我感到很光荣,我都不怕了,你怕什么?”

  我便在朋友面前,展纸、磨墨,写了四个字“常想一二”。

  朋友说:“这是什么意思?”

  我说:“意思是说我的字写得不好,你看到这幅字,请多多包涵,多想一二件我的好处,就原谅我了。”

  看到我玩笑的态度,朋友说:“讲正经的,到底是什么意思?”

  “俗话说‘人生不如意事十之八九’,我们生命里不如意的事情占了绝大部分,因此,活着的本身就是痛苦的。但是扣除了八九成的不如意,至少还有一二成如意的、快乐的、欣慰的事情。我们如果要过快乐人生,就要常常想那一二成好事,这样就会感到庆幸、懂得珍惜,不致被八九的不如意所打倒了。”

  朋友听了,非常欢喜,抱着“常想一二”回家了。

  2

  几个月后,他来探视我,又来向我求字,说是:“每天在办公室劳累受气,一回到家看见那幅‘常想一二’就很开心。但是墙壁太大,字显得太小,你再写几个字吧!”

  对于好朋友,我一向都是有求必应的,于是为“常想一二”写了下联“不思八九”,上面又写了“如意”的横批,中间顺手画一幅写意的瓶花。

  没想到又过了几个月,我被许多离奇的传说与流言困扰。朋友有一天打电话来,说他正坐在客厅里我写的字前面,他说:“想不出什么话来安慰你,念你自己写的字给你听:常想一二,不思八九,事事如意!”

  接到朋友的电话,我很感动。我常觉得在别人的喜庆里锦上添花是容易的,在别人的苦难里雪中送炭却很困难,那种比例,大约也是“八九”与“一二”之比。不能雪中送炭的不是真朋友,当然更甭说那些落井下石的人了。

  3

  不过,一个人到了四十岁以后,在生活里大概都锻炼出了“宠辱不惊”的本事,也不会在乎锦上添花、雪中送炭或落井下石了。那是由于我们早已经历过生命的痛苦和挫折,也经验过许多情感的相逢与离散,慢慢地寻索出生命中积极的、快乐的、正向的观想。这种观想,正是“常想一二”的观想。

  “常想一二”的观想,乃是在重重的乌云中寻觅一丝黎明的曙光;乃是在滚滚红尘里开启一些宁静的消息;乃是在濒临窒息时浮出水面,有一次深长的呼吸。

  生命已经够苦了,如果我们把五十年的不如意事总和起来,一定会使我们举步维艰。生活与感情陷入苦境,有时是无可奈何的,但如果连思想和心情都陷入苦境,那就是自讨苦吃、苦上加苦了。

  4

  我从小喜欢阅读大人物的传记和回忆录,慢慢归纳出一个公式:凡是大人物都是受苦受难的,他们的生命几乎就是“人生不如意事十之八九”的真实证言,但他们在面对苦难时也都能保持正向的思考,能“常想一二”,最后,他们超越苦难,苦难便化成为生命最肥沃的养料。

  使我深受感动的不是他们的苦难,因为苦难到处都有;使我感动的是,他们面对苦难时的坚持、乐观与勇气。

  原来,“如意”或“不如意”,并不是决定于人生的际遇,而是取决于思想的瞬间。

  原来,决定生命品质的不是“八九”,而是“一二”。

  原来,苦难对陷入其中的人是以数量计算,对超越的人却变成质量。数量会累积,质量会活化。

  既然生命的苦乐都只是过程,我们何必放弃自我的思想去迎合每一个过程呢?

  就快乐地活在当下吧,让每一个当下有情有义、发光发热、如诗如歌!

  来源:散文集《常想一二,不思八九》

smartgit 弹框解决办法

mrnaas阅读(3009)

【关于每次打开smartgit时一直弹出“非盈利….”框解决办法】

使用smartgit时,由于是出于个人使用非盈利目的,因此每次打开时都有一个确认框,必须等待二十多秒才能关闭,不胜其烦,因此寻找破解方法,如下:
 

点击如下链接,跳转到注册页面,选择“在家”,完成注册信息,注意邮箱必须是个人使用的,例如163邮箱、学校邮箱等等。
      https://www.syntevo.com/cn/smartgit/register-non-commercial/


登录注册使用的邮箱,会收到smartgit发送的邮件,里面有一个附件,smartgit.lic,

下载之后打开smartgit,

工具栏选择“帮助”->“注册产品”,选择smartgit.lic的下载路径,点击完成即可。

重启smartgit之后就没有弹出框了。

如果重启时提示不匹配问题,可能是由于刚才注册使用的邮箱与你之前登录smartgit使用的邮箱不一致,

点击左上角工具栏“仓库”->“编辑git配置文件”->“用户”,更新邮箱地址为上面注册使用的邮箱。

【关于每次打开smartgit时一直弹出“非盈利….”框解决办法】

学无止境,

欢迎大家关注公众号:

 

————————————————
版权声明:本文为CSDN博主「scut_lrr」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42448226/java/article/details/104790425

deepin/UOS Linux 微信多开教程

mrnaas阅读(1W+)

windows 可以通过批处理来实现微信多开(windows微信多开教程),那么deepin/UOS 微信多开教程应该也可以,接下来分享一下通过以下方法,可实现在深度Deepin 15.11操作系统下微信双开的效果。不过也可以采用更为快捷的方法:把图标放到桌面上,然后快速双击。

在深度系统下实现微信双开的方法

1、先在系统下单开微信需要登录一个微信,然后成功后退出。

2、编辑文件然后进入/home/自己用户名/.deepinwine目录,复制Deepin-WeChat文件夹到Deepin-WeChat2。

然后编辑

/opt/deepinwine/apps/Deepin-WeChat/run.sh:(15.11)

/opt/apps/com.qq.weixin.deepin/files/run.sh:(我的是 v20 是这个路径)把里边的内容复制多份  我目前是尝试三开  成功

把里面的内容重复复制一份,就是BOTTLENAME(15.11)改了下:

BOTTLENAME="Deepin-WeChat"

APPVER="2.6.8.65deepin0"

EXEC_PATH="c:/Program Files/Tencent/WeChat/WeChat.exe"

if [ -n "$EXEC_PATH" ];then

 /opt/deepinwine/tools/run_v2.sh $BOTTLENAME $APPVER "$EXEC_PATH" "$@"

else

 /opt/deepinwine/tools/run_v2.sh $BOTTLENAME $APPVER "uninstaller.exe" "$@"

fi
(v20的内容)
BOTTLENAME="Deepin-WeChat2"

APPVER="2.6.8.65deepin0"

EXEC_PATH="c:/Program Files/Tencent/WeChat/WeChat.exe"

if [ -n "$EXEC_PATH" ];then

 /opt/deepinwine/tools/run_v2.sh $BOTTLENAME $APPVER "$EXEC_PATH" "$@"

else

 /opt/deepinwine/tools/run_v2.sh $BOTTLENAME $APPVER "uninstaller.exe" "$@"

fi

 

3、找到run_v2.sh(15.11只有这个)或者run_v3.sh(v20是这个)我顺便也把v2的也改了,文件删除相关的行再找到/opt/deepinwine/tools/run_v2.sh文件并且打开它,删除/opt/deepinwine/tools/kill.sh “$name” block这一行即可。

再找到/opt/deepinwine/tools/run_v3.sh文件并且打开它,删除/opt/deepinwine/tools/kill.sh “$name” block这一行即可。
如果你之前运行过微信了那就需要在/home/cnguge/.deepinwine  路径复制Deepin-WeChat   名字和你run.sh的名字对应

 

最后还有一个取巧靠运气的小方法:

趁微信没反应过来的时候多点几次也可能会多开(几率)

欢迎大家关注公众号:

v20 工作环境搞定

mrnaas阅读(1W+)

linux 菜鸟   笔记本配置偏低  使用win10卡到爆 ,所以试试deepin,最开始用的机15.11,结果由于手欠把系统搞崩溃了,索性直接换v20了,历时一天的时间将自己的工作环境弄好了,包括开发环境和各类软件以及办公聊天工具,TIM/微信/企业微信都替换成最新版本了,目前唯一不知道怎么解决的问题就是 微信截图稍微大一点的话就发不出去了,其他的都还算比较满意,支持deepin,加油!

JavaScript基础到入门练习015-JS简单数据类型and练习

wangtong阅读(1525)

练习:做出一个网页警示框,弹框内容为:

古风是很多人的追求,一花一世界,一叶一追寻。一曲一场叹,一生为一人。

煮一杯酒,温热冰封的心肠,饮不尽世间聚散离合的沧桑;闭一扇窗,掩不住满目悲伤,谁还在云幕那端浅浅吟唱;剪一道光,透过天色的红妆,你是否是口是心非之前的模样。梦醒过来,寂寞就无处躲藏,你是否和我一样念念不忘?“经典美句!”

    alert('古风是很多人的追求,一花一世界,一叶一追寻。一曲一场叹,一生为一人。\n煮一杯酒,温热冰封的心肠,饮不尽世间聚散离合的沧桑;闭一扇窗,掩不住满目悲伤,谁还在云幕那端浅浅吟唱;剪一道光,透过天色的红妆,你是否是口是心非之前的模样。梦醒过来,寂寞就无处躲藏,你是否和我一样念念不忘?"“经典美句!”"');
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>
    alert('古风是很多人的追求,一花一世界,一叶一追寻。一曲一场叹,一生为一人。\n煮一杯酒,温热冰封的心肠,饮不尽世间聚散离合的沧桑;闭一扇窗,掩不住满目悲伤,谁还在云幕那端浅浅吟唱;剪一道光,透过天色的红妆,你是否是口是心非之前的模样。梦醒过来,寂寞就无处躲藏,你是否和我一样念念不忘?"“经典美句!”"');
</script>
</head>
<body>
</body>
</html>

JavaScript基础到入门练习014-JS简单数据类型and字符串型

wangtong阅读(1130)

JS把数据类型分为两大类:

  • 简单数据类型(Number,String,Boolean,Undefined,Null)
  • 复杂数据类型(object)

1、简单数据类型(基本数据类型)

简单数据类型说明默认值
Number数字型,包含整型值和浮点型值。如:12,1.20
String字符串类型,字符串需要带引号“”
Boolean布尔值类型,如true(等价于1)、false(等价于0)false
Undefinedvar a;表示声明的变量没有赋值。undefined
Nullvar a = null; 声明的变量赋值为nullnull

1.2 字符串型 String

1.2.1 基本语法

字符串型可以是引号中的任意文本,其语法为双引号” “和单引号’ ‘。


    var str1 = "我是一个字符串。";//使用双引号表示字符串
    var str2 = '我也是一个字符串。';//使用单引号表示字符串
    var str3 = 我不是字符串;//此时会报错,没有使用引号

因为HTML标签中的属性常常使用双引号,因此建议js中使用单引号。

1.2.2 字符串转义符

类似于HTML中的特殊字符,字符串中也有特殊字符,我们称之为转义符。

转义符都是以\为开头:

转义符解释说明
\n换行符
\\斜杠 \
\’‘ 单引号
\”” 双引号
\ttab 缩进
\b空格
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>
    var str1 = "我是一个字符串。";//使用双引号表示字符串
    var str2 = '我也是一个字符串。';//使用单引号表示字符串
    var str3 = 我不是字符串;//此时会报错,没有使用引号
    //引号嵌套
    var str4 = '我是"一个"字符串';
    var str5 = "我是'一个'字符串";
    //转义符
    //换行 \n
    var str6 = "我是一个\n字符串";

</script>
</head>
<body>
</body>
</html>