微信网页跳转小程序

前言 这几天在写微信 H5 的项目,有一个功能是网页跳转小程序,遇到了非常坑的问题,因此记录一下 坑点 开始使用 要跳转小程序,就要用到微信 SDK 的开放标签 wx-open-launch-weapp 我们需要在 jssdk 中注册 wx.config({ // ... 其他配置按照需求配置 openTagList: ["wx-open-launch-weapp"] // 填入这个玩意儿 }) 正常使用下,我们就是这么用 <wx-open-launch-weapp id="launch-btn" username="gh_xxxxxxxx" path="pages/home/index?user=123&action=abc" > <!-- script 标签不能省略 --> <script type="text/wxtag-template"> <button>打开小程序</button> </script> </wx-open-launch-weapp> 顺便吐槽,username 这个字段是小程序的原始ID,太蠢了… 好,按照以上操作,最简单版本的跳转可以了,但是问题来了,如果你需要非常复杂的样式呢? 踩坑 根据官方文档说明 如果所使用的标签允许提供插槽,由于插槽中模版的样式是和页面隔离的,因此需要注意在插槽中定义模版的样式。 意思是,写在这个标签里的模板样式,是引用不到外界的,你要么写内联样式,要么在 script 里写 style 标签。 所以当你需要在现成的一个按钮外加这么一个标签,那么你的样式可能就会混乱,甚至标签不见。 比如 <style> .btn { color: red; } </style> <wx-open-launch-weapp id="launch-btn" username="gh_xxxxxxxx" path="pages/home/index?user=123&action=abc" > <!-- script 标签不能省略 --> <script type="text/wxtag-template"> <style> ....

2021-09-09 16:30:48 · MrLeiDeSen

国内环境配置 Golang

前言 最近在学习 Golang,但是由于网络问题安装老出错,所以稍微记录一下,比较简单。 版本 go 1.17 安装 首先就是安装,如果没有代理的话可以走 https://golang.google.cn/ 或者 https://gomirrors.org/ 这两个网站下载,有代理的话正常官网就行了。 我这里是 Windows 环境,Linux 和 mac 下估计会简单一点吧。 首先是选择安装路径,默认是在 C:\Program Files\Go ,不过我改成了 C:\go 的路径方便自己管理,当然也可以安装在其他盘符。 这里是重点 安装完成后,进入系统环境变量,将 GOPATH 的路径改成 C:\go 之后选中 Path (记住是用户变量里的,不是系统变量),点击“编辑” 看看有没有关于 Go 的环境变量,有的话就修改成 C:\go\bin 没有的话就加上 点击确定保存 查看版本号 接下来在终端里输入 go version 查看版本号 go version 返回正常的话说明安装没问题 之后输入 go env 查看环境变量是否已经改成你之前修改的了,如果没有修改成功,之后的一些操作可能会报错 go env 设置代理 因为国内网络环境问题,我们之后的一些包会安装失败,所以这个时候咱们把代理切到国内,可以选择 goproxy.io 或者 goproxy.cn 这里我选择的是 cn 的,根据教程设置一下环境变量就行,选哪个不重要,重要的是能用就行。 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct VSCode 配置 配置好以上,接下来我们来配置 VSCode ,如果你不使用 VSCode 可以跳过这一步。...

2021-08-28 20:11:40 · MrLeiDeSen

关于 Git 的一些操作

前言 在上一家公司上班的时候,很少多人协同开发,所以 Git 上的操作仅限于 add, commit, push 等等简单的。 但是目前这家公司,多人协同就非常的频繁,所以稍微记录一下操作,免得自己以后忘记了。 一般公司都是用 GitLab 比较多,所以这里也按照 GitLab 来写。 Git WorkFlow Fork/Clone 首先我们在需要多人协作的项目中将项目 Fork 到我们自己的仓库(当然也可以直接 Clone,但是防止对源仓库误操作,最好还是 Fork) 添加 Remote 添加远端仓库的 Remote git remote add <远程仓库名(自己取)> <远程仓库地址> # 举例 :git remote add dev https://remote.repo.address 本地 Pull git switch master # or git checkout master git pull <远程仓库名> <远程分支>:<本地分支> # 举例 :git pull dev master:master 建议本地的 master(main) 分支只做同步,代码修改在新建分支上,确保不破坏主分支 新建分支 如果你的公司比较严格,需要每个 Feature/Fix 都要新建一个分支,那就按照需求新建分支,如果没有特别要求,就按照自己名字新建分支也可以。 git checkout -b <分支名> # 举例 :git checkout -b fix-type 处理冲突 多人开发中,肯定是每个人开发自己的部分先后提交。如果各自管各自的部分,不会改到别人的部分,基本上没什么冲突。但是一旦出现两人同时修改了一个文件的情况,就要开始处理冲突了。...

2021-08-17 13:15:48 · MrLeiDeSen

在项目中引入ESLint

前言 在项目开发过程中,随着团队成员的增加以及项目体量的增大,我们需要更加规范我们的代码,除了一些概念性的规范(如 Airbnb 规范),我们还需要通过引入 ESLint 来自动化规范我们的代码。 引入 首先确保我们的项目中使用 Webpack,先引入ESLint Webpack Plugin yarn add eslint-webpack-plugin -D # or npm install eslint-webpack-plugin --save-dev 之后在 Webpack 配置中引入 const ESLintPlugin = require('eslint-webpack-plugin') // ... module.exports = { // ... plugins: [ // ... new ESLintPlugin() // ... ] // ... } 如果使用的编辑器是 VSCode,记得安装插件 ESLint 生成规范 ESLint 会通过本地文件 .eslintrc.js 来判断规则,我们可以自己编写规则,也可以直接引入现成的规则,比如: Airbnb, Standard 等。 通过命令生成文件 npx eslint --init # 如果 eslint 全局安装了,可以如下 eslint --init 根据提示来进行选择就可以了,选择好之后再运行项目,就会发现项目会报一些 error/warning 了,这些都是正常的,我们可以通过命令行 --fix 来修复一些简单的规范问题...

2021-07-09 13:33:02 · MrLeiDeSen

React Context用法

创建一个context 首先需要通过React.createContext定义一个context,一下的定义需要在函数外定义 // ./src/Store.js const StoreContext = React.createContext() 如果你使用TS,那么createContext中需要传入一个默认值 // ./src/Store.tsx interface StoreProps { count: number setCount: Function } const StoreContext = React.createContext<StoreProps>({} as StoreProps) // 如果不加 'as StoreProps',因为里面的参数都是必填,会报错 // 或者传入{ count: 0, setCount: () => {} }这样当做默认值 // 也可以把类型定义为 'StoreProps | null',然后传入null,但不是很推荐 创建一个Provider export default function Store({ children }) { const [count, setCount] = useState(0) return ( <StoreContext.Provider value={{ count, setCount }} > {children} </StoreContext.Provider> ) } 使用useContext // ....

2021-06-15 08:59:30 · MrLeiDeSen