无为

道常无为而无不为


  • 首页

  • 标签

  • 分类

  • 归档

  • 站点地图

  • 公益 404

  • 搜索

react hoc

发表于 2020-04-05 | 分类于 react , hoc | 阅读次数:
本文字数: 32 | 阅读时长 ≈ 1 分钟

参考文章:

  • 组件演进史:从Mixin到HOC,再到Hook

react-transition-group

发表于 2020-04-02 | 阅读次数:
本文字数: 254 | 阅读时长 ≈ 1 分钟

使用react-transition-group做动画效果

安装

1
yarn add react-transition-group

使用

包含三个组件Transition,CSSTransition,TransitonGroup

1
import {Transition,CSSTransition,TransitonGroup} from 'react-transition-group';

  • 官网
  • https://segmentfault.com/a/1190000015487495

nodejs静态部署工具

发表于 2020-03-13 | 分类于 server | 阅读次数:
本文字数: 103 | 阅读时长 ≈ 1 分钟

记录几个好用的静态文件部署工具

本地部署

  1. http-server
  2. serve

    1
    serve [-p port] 目录
  3. anywhere

    1
    anywhere

互联网部署

  1. now
1
now 目录名

Data URI Scheme

发表于 2019-09-05 | 分类于 前端 | 阅读次数:
本文字数: 1.4k | 阅读时长 ≈ 1 分钟

基本概念

1
2
3
URI(Uniform Resource Identifier):统一资源标识符,服务器资源名被称为统一资源标识符。
URL(Uniform Resource Locator):统一资源定位符,描述了一台特定服务器上某资源的特定位置。
URN(Uniform Resource Name):统一资源名称

组成

1
2
3
协议://主机名[:端口]/ 路径/[:参数] [?查询]#Fragment

protocol :// hostname[:port] / path / [:parameters][?query]#fragment

格式规范

1
2
3
4
5
6
7
8
9
10
11
data:[<mime type>][;charset=<charset>][;<encoding>],<encoded data>

1. data :协议名称;

2. [<mime type>] :可选项,数据类型(image/png、text/plain等)

3. [;charset=<charset>] :可选项,源文本的字符集编码方式

4. [;<encoding>] :数据编码方式(默认US-ASCII,BASE64两种)

5. ,<encoded data> :编码后的数据

支持的类型

1
2
3
4
5
6
7
8
9
10
11
12
data:,                            文本数据
data:text/plain, 文本数据
data:text/html, HTML代码
data:text/html;base64, base64编码的HTML代码
data:text/css, CSS代码
data:text/css;base64, base64编码的CSS代码
data:text/javascript, Javascript代码
data:text/javascript;base64, base64编码的Javascript代码
data:image/gif;base64, base64编码的gif图片数据
data:image/png;base64, base64编码的png图片数据
data:image/jpeg;base64, base64编码的jpeg图片数据
data:image/x-icon;base64, base64编码的icon图片数据

优缺点

优点

1
2
1. 减少资源请求链接数。
2. 当访问外部资源很麻烦或受限时,可以很好的利用Data URI Scheme

缺点

1
2
3
4
5
1. Data URL形式的图片不会被浏览器缓存,这意味着每次访问这样页面时都被下载一次,
但可通过在css文件的background-image样式规则使用Data URI Scheme,使其随css文件一同被浏览器缓存起来)。
2. Base64编码的数据体积通常是原数据的体积4/3,
也就是Data URL形式的图片会比二进制格式的图片体积大1/3。
3. 移动端性能比较低。

eslint + prettier统一前端代码风格

发表于 2019-09-05 | 分类于 eslint | 阅读次数:
本文字数: 48 | 阅读时长 ≈ 1 分钟

转自: https://segmentfault.com/a/1190000015315545

wireguard安装及配置

发表于 2019-06-17 | 分类于 vpn | 阅读次数:
本文字数: 2.7k | 阅读时长 ≈ 2 分钟

centos7一键安装脚本

1
wget https://raw.githubusercontent.com/atrandys/wireguard/master/wireguard_install.sh && chmod +x wireguard_install.sh && ./wireguard_install.sh

aws linux 2 安装wireguard

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sudo curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo

sudo amazon-linux-extras install epel

sudo yum install wireguard-dkms wireguard-tools

# 开启ipv4流量转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

# 或者
sysctl -w net.ipv4.ip_forward=1


# 创建并进入WireGuard文件夹
mkdir -p /etc/wireguard && chmod 0777 /etc/wireguard
cd /etc/wireguard

# 生成服务器密钥对
umask 077
wg genkey | tee privatekey | wg pubkey > publickey

使用命令创建配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ip link add dev wg0 type wireguard  # ip link delete dev wg0 type wireguard
ip address add dev wg0 192.168.2.1/24
wg set wg0 private-key ./privatekey
wg setconf wg0 wg0.conf
ip link set wg0 up

# 添加客户端配置
wg set wg0 peer <client-publickey> allowed-ips 192.168.2.2/24

# 查看运行状态
wg

# 查看配置文件
wg showconf

手动创建配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Interface]
Address = 192.168.2.1/24 #wg0 内网ip地址段 任意的内网地址
SaveConfig = true # 设为true之后,每次重启服务(stop service时)都会自动保存config

# 以下是重点: 当服务启动时,通过iptables配置wg0来的流量forward到eth0
# 如果你的device不是eth0而是别的名字,把下面的eth0改成别的。
# 当服务停止的时候,删除相关的iptables规则
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

ListenPort = 51820 # 随便选一个空闲的端口
PrivateKey = <server-privateKey> #在上一步里生成的privatekey的内容

# 客户端1
[Peer]
PublicKey = <client-publicKey>
AllowedIPs = 192.168.2.2/24

# 客户端2
[Peer]
PublicKey = <client-publicKey>
AllowedIPs = 192.168.2.3/24

客户端配置文件

1
2
3
4
5
6
7
8
9
10
[Interface]
Name = aws
PrivateKey = <client-privateKey>
PublicKey = S4bzrVS8PBvuXxowqOzB5uNGrd4WQY74UJ388Z1XshQ=
Address = 192.168.2.2/24

[Peer]
PublicKey = <server-publicKey>
Endpoint = ip:port #服务器ip:端口
AllowedIPs = 0.0.0.0/0

启动/停止

1
2
3
4
5
6
cd /etc/wireguard
wg-quick up wg0
wg-quick down wg0

# 设置开机启动
systemctl enable wg-quick@wg0

客户端配置

Android客户端配置

  • Name: 自己起个名字
  • 点击GENERATE,它会自动生成Private/Public Key
  • 点击Public key,它会把public key复制到剪贴版,之后要用到。
  • Addresses: 填跟服务器端的配置里同样网段的IP,比如说192.168.2.2/24 (虚拟内网ip地址,/24是子网掩码,等于24位1,ip地址不能重复)
  • DNS: 8.8.8.8,这个应该是可选的
  • 添加一个Peer,在Peer里:
    Public key: 填服务器端生成的public key
    Allowed IPs: 填0.0.0.0/0,允许所有IP(这个很重要,否则即使连上了VPN,也无法访问别的网站)
    Endpoint: 填服务器的IP:端口(端口是服务器监听的端口)

v2ray安装

发表于 2019-06-13 | 分类于 v2ray | 阅读次数:
本文字数: 76 | 阅读时长 ≈ 1 分钟

一键安装v2ray服务器

安装

1
2
3
4
bash <(curl -s -L https://git.io/v2ray.sh)

# 命令
v2ray

aws ec2服务器

发表于 2019-06-11 | 分类于 aws | 阅读次数:
本文字数: 305 | 阅读时长 ≈ 1 分钟

切换root用户登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 密钥证书放到了~/.ssh目录
cd ~/.ssh

# 把证书权限修改为400
chmod 400 aws-tokyo.pem

# ssh远程连接
ssh -i aws-tokyo.pem ec2-user@ec2-3-113-37-231.ap-northeast-1.compute.amazonaws.com

# root用户设置密码
sudo passwd root

# 切换到root用户
su root

# 修改 PasswordAuthentication 为 yes
vim /etc/ssh/sshd_config

# 重启服务器

ssr服务器安装脚本

发表于 2019-05-08 | 分类于 ssr | 阅读次数:
本文字数: 1.6k | 阅读时长 ≈ 1 分钟

使用ssr一键安装脚本搭建ssr服务器

doubi一键安装脚本

安装

  1. 下载安装脚本
1
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssr.sh
  1. 执行安装
1
2
chmod +x ssr.sh
./ssr.sh

配置

常用命令

卸载

1
./ssr.sh uninstall

秋水一键安装脚本

安装

  1. 下载安装脚本
1
wget –no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
  1. 执行安装
1
2
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh

配置

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Shadowsocks-libev 版:
/etc/init.d/shadowsocks-libev start
/etc/init.d/shadowsocks-libev stop
/etc/init.d/shadowsocks-libev restart
/etc/init.d/shadowsocks-libev status

# Shadowsocks-Python 版:
/etc/init.d/shadowsocks-python start
/etc/init.d/shadowsocks-python stop
/etc/init.d/shadowsocks-python restart
/etc/init.d/shadowsocks-python status

# ShadowsocksR 版:
/etc/init.d/shadowsocks-r start
/etc/init.d/shadowsocks-r stop
/etc/init.d/shadowsocks-r restart
/etc/init.d/shadowsocks-r status

# Shadowsocks-Go 版:
/etc/init.d/shadowsocks-go start
/etc/init.d/shadowsocks-go stop
/etc/init.d/shadowsocks-go restart
/etc/init.d/shadowsocks-go status

卸载

1
./shadowsocks-all.sh uninstall

安装bbr加速

1
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh

安装kcptun加速器

参考https://ssr.tools/588

1
2
3
wget --no-check-certificate https://github.com/kuoruan/shell-scripts/raw/master/kcptun/kcptun.sh
chmod +x ./kcptun.sh
./kcptun.sh

centos关闭防火墙

1
2
3
4
5
6
7
8
# 查看防火墙状态
firewall-cmd --state

# 关闭防火墙
systemctl stop firewalld.service

# 禁止开机启动
systemctl disable firewalld.service

参考
https://ssr.tools/373

jenkins

发表于 2019-03-05 | 分类于 jenkins | 阅读次数:
本文字数: 471 | 阅读时长 ≈ 1 分钟

安装

  1. centos7系统安装
1
2
3
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins

官方安装比较慢,使用下面的国内地址

1
2
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.150.3-1.1.noarch.rpm
rpm -ivh jenkins-2.150.3-1.1.noarch.rpm

配置

  • 修改端口
1
vim /etc/sysconfig/jenkins

启动

1
2
3
4
service jenkins start | stop | restart

# 设置开机启动
sudo chkconfig jenkins on
12…4
xiaosl

xiaosl

不断尝试才能发现更好的

37 日志
26 分类
65 标签
RSS
GitHub Weibo 简书 Gitee
推荐
  • Web前端导航
  • 前端书籍资料
  • 百度前端技术学院
  • iissnan
© 2018 — 2020 xiaosl | 30k
京ICP备18021231号