分类 web 下的文章

https://code.visualstudio.com/
21 个VSCode 快捷键
VSCode拓展插件推荐(HTML、Node、Vue、React开发均适用)
vscode 插件推荐 - 献给所有前端工程师(2018.4.29更新)
如何优雅地使用 VSCode 来编辑 vue 文件?
2018 vscode 前端最佳配置
这就是我想要的 VSCode 插件!
VsCode从零开始配置一个属于自己的Vue开发环境
用vscode开发vue应用
玩转VS Code
官方拓展

安装插件: Ctrl + P 然后输入 ext install vetur 然后回车点安装即可。

vscode缩进快捷键:
选中文本;
Ctrl + [Ctrl + ] 实现文本的向左移动或者向右移动;

vscode代码对齐快捷键:
选中文本;
Shift + Alt + F 实现代码的对齐;


https://github.com/fatedier/frp

现在组成方案:二级域名(外网ip)+路由器(lede)+frp

一键脚本安装

https://github.com/fatedier/frp/issues/1058
https://github.com/clangcn/onekey-install-shell/tree/master/frps
https://github.com/MvsCode/frp-onekey

https://github.com/fatedier/frp/blob/master/README_zh.md

(服务器安装路径/usr/local/frps) 服务器配置文件frps.ini 如下:

# [common] is integral section
[common]
# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
bind_addr = 0.0.0.0
bind_port = 5443
# udp port used for kcp protocol, it can be same with 'bind_port'
# if not set, kcp is disabled in frps
kcp_bind_port = 5443
# if you want to configure or reload frps by dashboard, dashboard_port must be set
dashboard_port = 6443
# dashboard assets directory(only for debug mode)
dashboard_user = user
dashboard_pwd = mima
# assets_dir = ./static

# 设置域名(保证此域名可用)
subdomain_host = frp.domains.com

vhost_http_port = 81
vhost_https_port = 4433
# console or real logFile path like ./frps.log
log_file = ./frps.log
# debug, info, warn, error
log_level = info
log_max_days = 7
# privilege mode is the only supported mode since v0.10.0
privilege_token = tokenxxx
# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
#privilege_allow_ports = 1-65535
# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
max_pool_count = 50
# if tcp stream multiplexing is used, default is true
tcp_mux = true

以上配置的对应在路由器上OpenWrt R7.5.5 By Lean客户端 Global Setting如下:

Server:frp.domains.com
端口:5443
Privilege Token:tokenxxx 
HTTP穿透服务端口:81
HTTPS穿透服务端口:4433
服务注册间隔:50

上面服务器配置对应在路由器文件路径:/var/etc/frp(进SSH) frpc.conf

[common]
server_addr=frp.domains.com
server_port=5443
privilege_token=tokenxxx
log_level=info
log_max_days=3
protocol=tcp
log_file=/var/etc/frp/frpc.log
tcp_mux=true
login_fail_exit=false

[frp]
type=http
custom_domains=xx.domains.com
local_ip=192.168.1.1
local_port=80
use_encryption=true
use_compression=true

以上[frp]为一个frp服务列表type=http(https作者还没解决,有点问题,可以nginx代理即可)

frp https 服务

访问web

web frp控制台

根据服务器配置信息如下:

dashboard_port = 6443
dashboard_user = user
dashboard_pwd = mima

即是frp.domains.com:6443 账号user密码mima,进入web控制台

https处理:

frp.domains.com.conf配置文件上设置代理:

map $http_x_forwarded_for $clientRealip {
   "" $remote_addr;
   ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
}
server {
  listen 80;
  listen 443 ssl http2;
...
location / {
           proxy_pass http://127.0.0.1:6443;  #此处的6443就是你安装frp时设置的dashboard_port端口
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $clientRealip;  # $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
...

即可使用https://frp.domains.com访问

外网访问内网

根据配置信息如下
服务器上配置信息

...
vhost_http_port = 81
...

客户端配置信息

[frp]
    type=http
    custom_domains=xx.domains.com
    local_ip=192.168.1.1
    local_port=80
    use_encryption=true
    use_compression=true

这里使用的是http,因为作者似乎还没解决https 502问题
http访问:xx.domains.com:81即可

https处理:

xx.domains.com.conf配置文件上设置代理:

map $http_x_forwarded_for $clientRealip {
   "" $remote_addr;
   ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
}
server {
  listen 80;
  listen 443 ssl http2;
...
  location / {
           proxy_pass http://127.0.0.1:81;  #此处的,81(4433)就是你安装frp时设置的vhost_http(s)_port端口
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $clientRealip;  # $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
...

即可使用https://xx.domains.com访问192.168.1.1

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
使用内网穿透工具frp
做了简单的完善和补充
FRP内网穿透工具

free frp

https://www.chuantou.org/
https://diannaobos.com/frp/
http://frp.xxorg.com/

服务器设置

[frpc穿透] 【填坑完毕】内网穿透利器Frp一键安装脚本及设置教程
一键安装onekey-install-shell
下载

wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_386.tar.gz

解压

tar zxvf frp_0.16.0_linux_386.tar.gz

重命名

 mv frp_0.16.0_linux_386 frps

设置frps守护脚本

cd frps

vi start_frps.sh

#!/bin/sh
check(){
    pidof frpc  > /dev/null 2>&1
    if [ $? -ne 0 ]; then
          /etc/frpc/frpc -c /etc/frpc/frpc.ini &  
        fi
}
while true
      do 
      sleep 1
      check 
      done

赋予权限

chmod +x frps frps.ini frps.log start_frps.sh

在/etc/rc.local文件的exit 0前加入下面两行代码

/etc/frpc/frpc -c /etc/frpc/frpc.ini &
/etc/frpc/start_frpc.sh &

Https 代理模式对证书的处理可能有问题未解决
frp端口映射穿透内网
[frpc穿透] 【已解决】求助,frpc穿透https无法使用
FRP客户端和服务端在CentOS7中设置开机启动
有办法让 frp 和 nginx 共存一起用 80 端口吗?
Frp内网穿透配置
【分享】通过frp自建远程桌面连接,彻底告别TeamViewer && 来自此处 1

frp 与 K3

VPS

https://github.com/MvsCode/frps-onekey

/usr/local/frps

/usr/local/frps/frps.ini

# [common] is integral section
[common]
# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
bind_addr = 0.0.0.0
bind_port = 5443
# udp port used for kcp protocol, it can be same with 'bind_port'
# if not set, kcp is disabled in frps
kcp_bind_port = 5443
# if you want to configure or reload frps by dashboard, dashboard_port must be set
dashboard_port = 6443
# dashboard assets directory(only for debug mode)
dashboard_user = user
dashboard_pwd = pass
# assets_dir = ./static
vhost_http_port = 81
vhost_https_port = 4433
# console or real logFile path like ./frps.log
log_file = ./frps.log
# debug, info, warn, error
log_level = info
log_max_days = 3
# auth token
token = vpstoken
# It is convenient to use subdomain configure for http、https type when many people use one frps server together.
subdomain_host = xx.xx.com
# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
#allow_ports = 1-65535
# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
max_pool_count = 50
# if tcp stream multiplexing is used, default is true
tcp_mux = true

Usage: /etc/init.d/frps {start|stop|restart|status|config|version}

/etc/sysconfig/iptables:

# Generated by iptables-save v1.4.21 on Mon Apr 22 12:00:12 2019
*filter
:INPUT DROP [2:80]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [83:21224]
:syn-flood - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 81 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4433 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6443 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
# Completed on Mon Apr 22 12:00:12 2019

/usr/local/nginx/conf/vhost/xx.conf

map $http_x_forwarded_for $clientRealip {
   "" $remote_addr;
   ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
}
server {
  listen 80;
  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/xx.xx.com.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/xx.xx.com.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name xx.xx.com;
  access_log /data/wwwlogs/xx.xx.com_nginx.log combined;
  index index.html index.htm index.php;
  root /data/wwwroot/xx.x.cxom;
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
  
  include /usr/local/nginx/conf/rewrite/other.conf;
  #error_page 404 /404.html;
  #error_page 502 /502.html;
  location / {
    proxy_pass http://127.0.0.1:81;  #此处的6443就是你安装frp时设置的dashboard_port端口
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $clientRealip;  # $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
# location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv|mp4)$ {
#   valid_referers none blocked *.xx.com x.xxx.com;
#   if ($invalid_referer) {
#       return 403;
#   }
# }
  location ~ [^/]\.php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
  }

# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
#   expires 30d;
#   access_log off;
# }
# location ~ .*\.(js|css)?$ {
#   expires 7d;
#   access_log off;
# }
  location ~ /\.ht {
    deny all;
  }
}

K3

远程管理,远程端口:81, 允许IP:255.255.255.255

FRP设置:

#frp.jsxz.cf是免费提供的frp服务器,如果需要使用,请修改下面两处的“test”为你的名称,比如"hello"
#然后可以通过http://hello.jsxz.cf访问你的设备
#如果无法正常使用,请更改名称,注意名称不能和别人重复
[common]
server_addr = xx.xx.com
server_port = 5443
token = vpstoken
user = user

[web]
type = http
local_port = 80
subdomain = home
#端口转发示例,去除下面每行前面的"#"并修改remote_port,注意remote_port不能和别人重复,否则无法正常启用
#[ssh]
#type = tcp
#local_ip = 127.0.0.1
#local_port = 22
#remote_port = 6000


[frp]
type=http
custom_domains=xx.xx.com
local_ip=192.168.2.1
local_port=80
use_encryption=true
use_compression=true


end


http://www.wooyun.org/
镜像
https://bestwing.me/build-the-wooyun-drops.html 搭建教程
https://github.com/hanc00l/wooyun_public
https://github.com/m0l1ce/wooyunallbugs
https://github.com/jiji262/wooyun_articles
https://github.com/SuperKieran/WooyunDrops

http://wooyun.fbisb.com/
http://su.xmd5.org/
http://wooyun.jozxing.cc/

http://www.virscan.org/language/zh-cn/
VirSCAN.org 是一个非盈利性的免费为广大网友服务的网站,它通过多种不同厂家提供的最新版本的病毒检测引擎对您上传的可疑文件进行在线扫描,并可以立刻将检测结果显示出来,从而提供给您可疑程度的建议。

博客

https://bazad.github.io/

常见 Web 安全攻防总结
Web安全开发规范手册V1.0

前端安全

前端该知道些密码学和安全上的事儿
前端 web 密码加密是否有意义
目前有没有用密码登录的网站做了前端加盐加密?

一个想法:
某些库,插件会重写浏览器的XMLHttpRequest对象,
在Network看不到任何请求,拦截所有的请求,只能本地调试。
这样相对安全,为难自己。



875571
https://www.w3cplus.com/javascript/webpack-config-part1.html

Webpack 打包优化之体积篇
Webpack 打包优化之速度篇
(webpack系列二)webpack打包优化探索

Webpack按需打包Lodash的几种方式

webpack 打包JS 的运行原理

优化

使用可视化图表对 Webpack 2 的编译与打包进行统计分析

全局引入lodash,报错

index.js(main.js)

import _                from 'lodash';

// 设置lodash 全局

window._ = _;


warning  '_' is not defined  no-undef

https://stackoverflow.com/questions/45317154/error-is-not-defined-no-undef

.eslintrc

"globals" : {
    "$axios": false,
    "$store": false,
    "APIs": false,
    "__PROJECTDIR__": false,
    "_": true
  },


ESLint配置清单

ESLint官方提供的一份标准配置
阿里eslint-config-ali
腾讯AlloyTeamAlloyTeam ESLint 配置指南
Airbnb JavaScript Style Guide



前端面试题集锦 && GitHub
总结前端面试过程中最容易出现的问题
前端面试题
前端工作面试问题
面试时HR问:“你离职的原因是什么?”两种回答,结局大不相同!

HTML 问题
CSS 问题
JS 问题

前端面试考点多?看这几篇文章就够了

BAT 要的是什么样的前端实习生?

前端笔试题面试题记录(上)|

请你介绍下所做的项目

别人问你http协议,到底是想问什么?

Java面试通关要点汇总集【终极版】

常见 Web 安全攻防总结

解耦基本可以遵循三个原则:

分层设计
单向依赖
服务抽象

version:1.2
url?=是参数query string
调试时遇到浏览器缓存
浏览器认为不同的url而重新请求
从而避免缓存

写简历

基本信息,姓名,年龄,手机,邮箱,籍贯
学历,博士,硕士,本科,大专
工作经历,时间,公司,岗位,职责,技术栈,业绩
自我陈述
把握面试的沟通方向
豁达,自信的适度发挥

大厂员工接触的技术面很窄吗?

当然,也有人说了,“我所谓的螺丝钉并非做重复机械的工作,而是说只能接触到一小块业务或技术点,无法接触到系统的全貌”。

这个确实是事实,毕竟大厂有非常多的研发人员。所以一般会将一个复杂的系统拆散成多个零部件,每个小组或每个人做其中一块。

但我想说的是,只接触其中一块领域,你就不能成长了吗?大厂和小厂的最大区别是什么?是用户量级。一般的小厂是十几万或几十万的 DAU,而大厂往往是上千万甚至上亿的 DAU,同样一段代码,在小厂里能良好运行,但到了大厂,就会发现里面存在非常多问题。

大厂求精通,求深度;小厂求速度,求广度。

如果你在大厂,就应该尽可能深入去研究你参与的模块,多想想如何把你所做的模块优化到极致,在巨大的用户量面前依然能够稳定运行。相信我,这样的一份经验可以成为未来无数次面试的一大亮点。




推荐开发环境方案:

nvm > node > nrm > yarn > yrm 
推荐!用 nvm 管理 node 版本, NPM 源管理器切换不同源,yarn 源管理器切换不同源, 最终用yarn

管理 node 版本,选择 nvm 还是 n? hokaccha/nodebrew
nnvm && 用法
nvm的正确打开姿势

Window:

nodejs在windows下的安装配置(使用NVM的方式) 作者github && windows版本
Windows 下安装 nvm 管理 nodejs 版本,安装目录下找到settings.txt

setting.txt

root: C:\dev\nvm 
path: C:\dev\nodejs 
arch: 64 
proxy: none 
node_mirror: https://npm.taobao.org/mirrors/node/ 
npm_mirror: https://npm.taobao.org/mirrors/npm/

nvm 设置下载 node 的镜像地址

Centos

centos上安装

Mac

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

安装后完后重启终端,command -v nvm # 出现nvm 则正常。反之则继续看下面的

如果没有显示 nvm 看安装过程中出现的

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

把上面提示的内容放.bash_profile ,先ls -a查看下有没有这个文件,没有的话就

touch .bash_profile  #新建一个文件
open .bash_profile   #打开这个文件
source .bash_profile #重启生效

检验:

command -v nvm # 出现nvm 则正常
ls -a

如果按照iTerm2每次都需要source .bash_profile才生效:

touch .zshrc
open .zshrc

touch ~/.zshrc
open ~/.zshrc
source ~/.zshrc

添加:

source .bash_profile

生效:

source /etc/profile

安装node:

nvm list available #查看网络可以安装的版本:
nvm ls-remote   # 查看远程服务器可安装的版本
nvm install 10.10.0
nvm install 9.10.0
nvm install 8.10.0

安装完成提示:

nvm is not compatible with the npm config "prefix" option: currently set to "/Users/z/nvm/versions/node/v8.10.0"
Run `nvm use --delete-prefix v8.10.0` to unset it.

则使用指定版本:

nvm use --delete-prefix v8.10.0
node -v

显示此版本则表示操作成功。

mac中nvm的安装和使用
正确的安装和使用nvm(mac)

[root@localhost ~]# nvm --version
-bash: nvm: command not found
[root@localhost ~]# source ~/.nvm/nvm.sh
[root@localhost ~]# nvm --version
0.33.2
[root@localhost ~]#

nvm常用命令:

nvm install <version>  ## 安装指定版本,可模糊安装,如:安装v4.4.0,既可nvm install v4.4.0,又可nvm install 4.4
nvm uninstall <version>  ## 删除已安装的指定版本,语法与install类似
nvm use <version>  ## 切换使用指定的版本node
nvm ls  ## 列出所有安装的版本
nvm ls-remote  ## 列出所以远程服务器的版本(官方node version list)
nvm current  ## 显示当前的版本
nvm alias <name> <version>  ## 给不同的版本号添加别名
nvm unalias <name>  ## 删除已定义的别名
nvm reinstall-packages <version>  ## 在当前版本node环境下,重新全局安装指定版本号的npm包

npm 常用命令详解
http://www.runoob.com/nodejs/nodejs-tutorial.html
Node.js 教程
安装后,运行Node.js command prompt

npm

13 个 npm 快速开发技巧

安装依赖

npm install
//请特别注意,直接使用 cnpm 可能会导致依赖不正确。
//强烈建议给 npm 设置 taobao 的 registry,并且能通过如下操作解决npm速度慢的问题。 
npm install --registry=https://registry.npm.taobao.org 

npm源无法使用问题解决

推荐看这里mirror-config-china

https://npm.taobao.org/
设置淘宝源的是:

npm config set registry https://registry.npm.taobao.org

如果有些无法实现淘宝源的,需要设置回原来的就可以了(可能需要ss):

npm config set registry https://registry.npmjs.org

npm

查看npm配置

npm conig list

删除源

npm config delete registry

下面给出淘宝镜像的安装和卸载
安装

npm config set registry "https://registry.npm.taobao.org"
npm config set disturl https://npm.taobao.org/dist

卸载

npm config delete registry
npm config delete disturl

window 下载出现 phantomjs 安装不上问题

设置环境变量:
控制面板->系统和安全->系统->高级系统设置->环境变量->编辑用户变量Path->将';C:\wamp3.0.4\www\phantomjs-2.1.1-windows\bin'添加到最末端即可)
win+R,输入cmd打开控制台,输入phantomjs -v,若输出了版本号,则证明安装成功了。
这个问题可能会影响到其他依赖的安装

https://yarnpkg.com/lang/zh-hans/docs/migrating-from-npm/
从 npm 迁移\
https://segmentfault.com/a/1190000014716713

快速安装
npm install -g yarn //在NPM 中安装

nrm 和yrm

修改npm和yarn源
双源管理工具cgr (change registry)都是基于nrm改写的,能同时管理npm、yarn的源

搭建 npm 私服

npm私服安装教程 - verdaccio 入门


Awesome APIs
中国国内可用API合集
支付宝数据接口
想写个 App 练手,有什么有趣的 API 接口推荐吗?
Github:GitHub API v3
Weibo:API - 微博API
Twitter:https://dev.twitter.com/
Dribbble:Dribbble Developer
V2EX API 接口
Angelist:API - AngelList
Nytimes:http://developer.nytimes.com/
(这个是从西乔的文章听说的),使用这个API,开发者可以调用到几百万份结构化过的数据,从1981 年至今,纽约时报报道的事件,畅销书,甚至房地产等等。
Instagram:https://www.instagram.com/developer/
聚合数据 http://free.juhe.cn/
Web Service(WEB服务) http://www.webxml.com.cn/zh_cn/web_services.aspx
百度API服务 http://apistore.baidu.com/
Apix https://www.apix.cn/
和风天气 http://www.heweather.com/

与翻译相关的。
有道翻译:http://fanyi.youdao.com/openapi
金山词霸:http://open.iciba.com/?c=wiki
百度翻译: http://api.fanyi.baidu.com/api/trans/product/apidoc

快递鸟 http://www.kdniao.com/
TMDb https://www.themoviedb.org/documentation/api
笑话的RESTful API http://www.icndb.com/api/
豆瓣API https://developers.douban.com/wiki/?title=guide
https://developers.douban.com/wiki/?title=api_v2
豆瓣Movie API Doc https://developers.douban.com/wiki/?title=movie_v2

API 搜索

APIs.io - the API search engine
ProgrammableWeb
public-apis
应用 Api
https://github.com/TonnyL/Awesome_APIs Chinese Part && Global Part

百度翻译:
https://sp1.baidu.com/5b11fzupBgM18t7jm9iCKT-xh_/sensearch/selecttext?q=%E4%BD%A0%E5%A5%BD

知乎日报-简要版 API:

http://news-at.zhihu.com/api/4/news/latest 今日热文
http://news.at.zhihu.com/api/4/news/before/ 更多往日热文

上面这两个地址是我们今天要做的首页的API,我们将发起request请求,拿回数据做渲染。
知乎日报 API 分析

api

Dingo API


官方

微信小程序官方文档 https://mp.weixin.qq.com/debug/wxadoc/dev/index.html
微信小程序接入指南 https://mp.weixin.qq.com/debug/wxadoc/introduction/index.html
微信小程序开发工具下载 https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html
简易教程 https://mp.weixin.qq.com/debug/wxadoc/dev/
框架 https://mp.weixin.qq.com/debug/wxadoc/dev/framework/MINA.html
组件 https://mp.weixin.qq.com/debug/wxadoc/dev/component/
API https://mp.weixin.qq.com/debug/wxadoc/dev/api/
Q&A https://mp.weixin.qq.com/debug/wxadoc/dev/qa.html
开发者社区 https://developers.weixin.qq.com/

微信web开发者工具
https://mp.weixin.qq.com/wiki?action=doc&id=mp1455784140
https://www.weixinsxy.com/jssdk/

https://github.com/Tencent/wepy wepy官方仓库
https://tencent.github.io/wepy/ wepy官方文档
https://github.com/aben1188/awesome-wepy 微信小程序组件化开发框架wepy开发资源汇总

文档接口例子

http://203.195.235.76/jssdk/#menu-image

https://blog.csdn.net/u011500781/article/details/51746364
微信公众平台前端人员对接(微信拍照上传)
http://203.195.235.76/jssdk/#menu-image

https://aotu.io/notes/2018/06/07/Taro/
多端统一开发框架 - Taro

《小程序从0到1,微信全栈工程师一本通》作者专栏
https://zhuanlan.zhihu.com/zero-weapp

框架

taro
wepy
mpvue
小程序组件化开发框架 (GitHub) https://wepyjs.github.io/wepy
https://tencent.github.io/wepy/index.html WePY | 小程序组件化开发框架
微信小程序wepy开发资源汇总

第三方微信小程序在线开发手册(更新落后) http://doc.pietian.com/

微信小程序开源项目库汇总
微信小程序开源项目库汇总 http://www.opendigg.com/tags/wechat-app

项目

微信小程序 - 王者图鉴
给ofo共享单车撸一个微信小程序
微信小程序ofo小黄车+thinkphp5.0打造全栈应用
电影推荐 - 微信小程序
微信小程序商城

cms:https://www.icmsdev.com/

Wordpress API

https://github.com/iamxjb/winxin-app-watch-life.net
https://deliciousbrains.com/creating-a-wordpress-theme-using-the-rest-api-and-vue-js/
https://github.com/bstavroulakis/vue-wordpress-pwa
https://www.npmjs.com/package/vue-wordpress
https://segmentfault.com/a/1190000008715104

typecho

Wetypecho && GitHub

https://mp.weixin.qq.com/s/GnHzJWYFJUXYuvYq6Cb_FA
微信小程序“反编译”实战(一):解包

Vue仿微信菜单编辑器demo


Regular Expression

马上收藏!史上最全正则表达式合集
密码强度的正则表达式(JavaScript)总结
身份证号码的正则表达式及验证详解(JavaScript,Regex)
https://m.w3cschool.cn/regex_rmjc/
https://www.w3cschool.cn/regex_rmjc/
正则表达式30分钟入门教程

过滤文章中多余的------
//正则 匹配多余的
var arr = ['----------------------------------------------------------------------------------------------------'];//100个
var arr1 = ['--------------------------------------------------'];//50个
var arr2 = ['-------------------------'];//25个-
var arr3 = ['-----','----------'];//5,10个-
//多次匹配和一次匹配的结果不同
//var arr3 = ['-----','------','-------','--------','---------','----------'];//5,6,7,8,9,10个
var res = it.internalNotic.replace(new RegExp(arr.join('|'),'img'),'-');
var res1 = res.replace(new RegExp(arr1.join('|'),'img'),'-');
var res2 = res1.replace(new RegExp(arr2.join('|'),'img'),'-');
var res3 = res2.replace(new RegExp(arr3.join('|'),'img'),'-');
console.log(res);
console.log(res1);
console.log(res2);
console.log(res3);


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title></title>
  <link rel="stylesheet" href="">
  <script src="jquery.js"></script>
</head>
<body>
  <table class="list" style="width:100%;">
        <tbody><tr>
          <th style="width: 20%; min-width: 168px; max-width: 192px;">审核用户</th>
          <th style="width: 20%; min-width: 120px; max-width: 144px;">审核结果</th>
          <th style="width: 20%; min-width: 120px; max-width: 144px;">审核日期</th>
          <th style="width:60%">相关说明</th>
        </tr>
        </tbody><tbody oddclass="list-odd" evenclass="list-even" hoverclass="list-hover" class="shsjvalidation">
          
            <tr>
              <td style="min-width: 168px; max-width: 192px;">
                葛大爷
              </td>
              <td style="min-width: 120px; max-width: 144px;">
                审核中
              </td>
              <td style="min-width: 120px; max-width: 144px;">2017-06-02</td>
              <td style="white-space: inherit; overflow: inherit; text-overflow: inherit;">
                
              </td>
            </tr>
          
            <tr>
              <td style="min-width: 168px; max-width: 192px;">
                a的上级
              </td>
              <td style="min-width: 120px; max-width: 144px;">
                同意
              </td>
              <td style="min-width: 120px; max-width: 144px;">2017-06-02</td>
              <td style="white-space: inherit; overflow: inherit; text-overflow: inherit;">
                
              </td>
            </tr>
          
        </tbody>
      </table>
<script>
    str="审核中";
    var reg = /审核中/ig;
    var shstr = $(".shsjvalidation tr td:nth-child(2)").text();
    console.log(shstr);
    var newshsjstr = $(".shsjvalidation tr td:nth-child(3)").text();
    console.log(newshsjstr);
    $('.shsjvalidation tr td:nth-child(2)').each(function(index){
    // console.log("这是第"+index+"个: "+$(this).html());
    console.log($(this).html());
    if($(this).html().match(str)){
      // alert("ok");
      $(this).next("td").css("background-color","yellow");
      // $('.shsjvalidation tr td:nth-child(2)').css("background-color","yellow");
    }
    })
    
  </script>
</body>
</html>

自行添加jq文件


多合一收款二维码原理及实现(源码)
制作QQ微信支付宝三合一收款码

  1. 列表项目

支付相关教程

http://blog.leungjz.top/2017/05/10/payment-alipay/
http://blog.lixf.cn/essay/2016/10/12/account-3-bank/
http://www.arccode.net/2016/05/02/微信支付SDK-两行代码解决支付/
http://blog.lixf.cn/essay/2016/10/20/account-4-contract/
http://blog.lixf.cn/
https://payjs.cn/
个人网站即时到账收款解决方案 / Personal website instant payment solution

开源

https://github.com/weloveidc/WHMCS-Payment-Gateway-alipay
https://github.com/tension/f2faliPay-For-WHMCS
https://github.com/jmdhappy/xxpay-master