快速熟悉vue3的语法
本文前提 — 特别熟悉vue2,有一定的基础。对比一下vue3有哪些新的语法,以便可以快速上手vue3
基础setupsetup是新增的生命周期,早于beforeCreate,setup里没有this,是组合式API的入口,只在组件初始化时执行一次。
123456789101112131415161718192021<script lang="ts"> import { reactive, toRefs } from 'vue' export default { setup(props,context){ const data = reactive({ message: 'hello' }) const change = () => { data.message = 'wor ...
企查查代理访问方案
背景与目标澳洲的 Windows 主机需要访问中国大陆的企查查网站(qcc.com)。由于企查查对海外 IP 存在访问限制/区别对待,且澳洲到阿里云中国大陆的直连线路质量差,采用两跳代理链路,以中国大陆 IP 作为最终出口访问。
约束条件:澳洲 Windows 主机上不允许安装任何第三方 VPN/代理软件,只能修改浏览器/系统的代理设置。
网络架构123456789澳洲 Windows 浏览器 │ PAC 脚本(仅 qcc.com 走代理,其余直连) ▼东京服务器 47.74.*.*:自定义端口 ← gost HTTP 代理入口,带 Basic 认证 │ relay+tls 加密链路(阿里骨干网,约 61ms) ▼北京 ECS 39.107.*.* ← gost 出口,安全组仅放行东京服务器 IP ▼企查查(以北京数据中心 IP 访问)
节点
IP
角色
澳洲 Windows 主机
(待确认是否固定 IP)
客户端,仅配置浏览器代理
东京服务器(当前服务器)
47.74..
代理入 ...
学习python(一、基础语法)
快速开始
安装Python程序。官网下载地址https://www.python.org/downloads/
写一个后缀为py的脚本test.py,写一行代码 print('hello'),在终端执行python test.py就能看到执行结果。
执行命令mac:要用python3 test1.py(历史原因导致的,python指向python2)windows:python/py test1.py(py是别名)
数据类型6种(总览)数值(int float complex(复数) bool)字符串str列表list(可变序列)元组tuple(不可变序列)集合set(元素唯一无序)字典dict(键值对)特殊数据类型None
不可变:数值 字符串 元组可变:list set dict
内置函数
type()获取数据类型
1type(1) # print(type(1)) 打印 <class 'int'>
isinstance()判断数据是不是某个类型
1isinstance(1, int) # 返回True/Fal ...
前端如何正确接收 URL 里的「裸 +」参数
适用场景:从 URL query 里接收 base64(或其它含 + / = 的)参数,且这条链接由第三方/后端生成、前端无法控制其编码方式时。本文是通用版,不依赖任何具体框架的项目封装。
问题是怎么来的base64 字符集里有 +。生成链接的一方如果没有把 + 转义成 %2B,发出来的就是裸 +:
1https://example.com/confirm?key=ab+cd/ef==
浏览器点这种链接时,对 + / = 这些 URL 合法字符不会主动再编码,原样发出去。于是前端拿到的 query string 里就是裸 +。
为什么不能直接用框架的 query 解析(route.query.key)vue-router、以及很多按 form-urlencoded 语义解析 query 的库,都会先把 + 替换成空格、再 decodeURIComponent:
123const PLUS_RE = /\+/g// ...value.replace(PLUS_RE, ' ') // + → 空格,发生在 decode 之前
所以裸 + 经过这 ...
claude code的使用记录
安装官网安装的方式如下
12345678910# maccurl -fsSL https://claude.ai/install.sh | bash# macOS 也可使用 Homebrew:brew install --cask claude-code# windowsirm https://claude.ai/install.ps1 | iex# 验证安装成功claude --version
在国内一般安装不成功,Anthropic 已弃用 npm 安装方法,但npm的安装方式仍是一种可行方案
1npm install -g @anthropic-ai/claude-code
配置官方方式1234# 打开项目目录cd your-project# 执行claude命令claude
首次启动时会:
提示选择主题、确认安全须知
在浏览器中完成 Claude 账号授权
信任当前工作文件夹
接入deepseek模型方式国内上述方式不可用,可以接入deepseek-v4大模型mac/linux接入方式
12345678export ANTHROPIC_BASE_URL=ht ...
微信小程序代开发流程
服务商在微信开放平台注册服务商在微信开放平台注册并创建一个第三方平台申请一个普通小程序,并在开放平台绑定为“开发小程序”,这个小程序专门用于后续的模版开发与调试。
开发并上传小程序模版服务商使用“开发小程序”的账号登录微信开发者工具。像开发普通小程序一样进行模板的编码。从开发者工具上传,这份代码会先存入草稿箱,服务商可以将其添加至自己的小程序模板库,并得到一个全局唯一的模板ID(Template ID)
商家授权服务商在开放平台添加的权限集最终是为了通过接口生成的二维码,让客户小程序的管理员扫码授权,将权限授权给服务商。
获取component_verify_ticket(验证票据)https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Before_Develop/component_verify_ticket.html
获取component_access_token(令牌)https://developers.weixin.qq.com/doc/oplatform/Third-p ...
企业微信内嵌H5应用的方案
需求背景:作为服务商,为客户代开发企业微信内的应用。服务商后台地址:https://open.work.weixin.qq.com/wwopen/developers/home企业管理后台:https://work.weixin.qq.com/wework_admin/frame
创建应用(前期准备)登录服务商后台地址,以服务商的身份创建一个代开发应用模板
创建好应用模版后,企业用户授权,就会在模板中生成一个代开发应用
进入应用的详情页修改了使用配置,就会将应用的应用状态修改为存在未上线版本
从代开发应用上线入口,将应用上线将刚刚修改的应用上线:
前端如何调用企微jssdk提供的接口参考文档(服务商代开发-客户端API-JSSDK):https://developer.work.weixin.qq.com/document/path/96914sdk的版本是2.3.3
安装jssdk1npm install @wecom/jssdk
接口鉴权1234567891011121314151617181920import * as ww from '@wecom/jssdk ...
在github pages部署vue项目
将vue项目部署到github pages主要运用了github pages的静态文件托管功能以及github提供的action功能用action创建一个workflow,github会自动执行这个workflow,将项目打包成静态文件,并上传到github pages。workflow的配置文件在.github/workflows/deploy.yml中
github提供了几个workflow模板,可以参考,比如Jekyll等,但是自己写一个比较好。可参考vite官网中的的部署静态站点
yaml文件后缀为.yml或者.yaml的文件都是yaml文件YAML(YAML Ain’t a Markup Language)是一种以数据为中心的可读性序列化格式,设计初衷是简化配置文件编写。
deploy.yml点完create your own按钮后,记得把文件名改为deploy.yml,GitHub会帮你在目录.github/workflows/deploy.yml下生成文件,以下是yml文件内容。
12345678910111213141516171819202122232425 ...
微信扫码授权场景记录
正常的逻辑步骤
请求后端接口,返回一个微信的链接,window.location.href=链接,跳转到该链接。示例:https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=wxb22e2f52075766d4&pre_auth_code=preauthcode@@@nWi_gMNZMPCaTlkL-wgsz3MdQtdQWmOeaOccoLrKY9fU3hDLpwGM1gLJQGszUEeniQn6NGeYNhoiNXJ18bQuMA&auth_type=2&redirect_uri=
用户扫码以后手机上点了确定,微信的这个链接就会跳转回redirect_uri
在初始化的时候重新请求接口判断店铺状态,或是用微信返回的auth_code、expires_in参数调接口
提前的配置授权后回调页域名redirect_uri需要在微信平台里提前配,并且须与确认授权入口页所在域名相同,
我们的特殊场景而我们的业务场景是授权入口页面域名不固定,每个店铺一个域名,所以得在一 ...
微信小程序如何给用户推送消息
我记得前几年小程序是不能给用户推送消息的。须通过公众号给用户推消息。不知道是否是记错了。但最近项目中有这种小程序给用户推消息的需求。发现小程序确实可以通过wx.requestSubscribeMessage拉起订阅消息的授权弹窗,在用户授权后,直接给用户推微信消息。记录一下。代码如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273import {findCustomerPopTemplate,popSubscribeResult} from '../api/subscriptApi'/** * @param {*} type 订阅场景 * @param {*} busNo 业务编码如商品ID */export const asyncSubscribeMessage = (type, ...