winney

It is never too old to learn.

0%
winney

在Git安装目录下,可以查看相关命令的使用(help)

1
Git/mingw64/share/doc/git-doc/

正确的github工作流

提交到远程仓库报错

1
2
3
4
5
OpenSSL SSL_connect: Connection was reset in connection to github.com:443



OpenSSL SSL_connect: Connection was reset in connection to github.com:403

解决方法,将.git/config:

1
2
[remote "origin"]
url = https://github.com/winney07/winney07.github.io.git

改为:

1
2
[remote "origin"]
url = git@github.com:winney07/winney07.github.io.git

Github创建仓库

Github创建仓库

Git常用命令速查表

创建版本库

  1. 克隆远程版本库

    1
    git clone <url>
  2. 初始化本地版本库

    1
    git init

修改和提交

  1. 查看状态

    1
    git status
  2. 查看变更内容

    1
    git diff
  3. 跟踪所有改动过的文件

    1
    git add .
  4. 跟踪指定的文件

    1
    git add <file>
  5. 文件改名

    1
    git mv <old> <new>
  6. 删除文件

    1
    git rm <file>
  7. 停止跟踪文件但不删除

    1
    git rm --cached <file>
  8. 提交所有更新过的文件

    1
    git commit -m "commit message"
  9. 修改最后一次提交

    1
    git commit --amend

查看提交历史

  1. 查看提交历史

    1
    git log
  2. 查看指定文件的提交历史

    1
    git log -p <file>
  3. 以列表方式查看指定文件的提交历史

    1
    git blame <file>

撤销

  1. 撤销工作目录中所有未提交文件的修改内容

    1
    git reset --hard HEAD
  2. 撤销指定的未提交文件的修改内容

    1
    git checkout HEAD <file>
  3. 撤销指定的提交

    1
    git revert <commit>

分支与标签

  1. 显示所有本地分支

    1
    git branch
  2. 切换到指定分支或标签

    1
    git checkout <branch/tag>
  3. 创建新分支

    1
    git branch <new-branch>
  4. 删除本地分支

    1
    git branch -d <branch>
  5. 列出所有本地标签

    1
    git tag
  6. 给予最新提交创建标签

    1
    git tag <tagname>
  7. 删除标签

    1
    git tag -d <tagname>

合并与衍合

  1. 合并指定分支到当前分支

    1
    git merge <branch>
  2. 衍合指定分支到当前分支

    1
    git rebase <branch>

远程操作

  1. 查看远程版本库信息

    1
    git remote -v
  2. 查看指定远程版本库信息

    1
    git remote show <remote>
  3. 添加远程版本库

    1
    git remote add <remote> <url>
  4. 从远程库获取代码

    1
    git fetch <remote>
  5. 下载代码及快速合并

    1
    git pull <remote> <branch>
  6. 上传代码及快速合并

    1
    git push <remote> <branch>
  7. 删除远程分支或标签

    1
    git pull <remote> : <branch/tag-name>
  8. 上传所有标签

    1
    git push --tags

管理分支

1、查看本地分支

使用 git branch命令,如下:

1
2
$ git branch
* master

*标识的是你当前所在的分支。

2、查看远程分支

命令如下:

1
git branch -r

3、查看所有分支

命令如下:

1
git branch -a

2、本地创建新的分支

命令如下:

1
git branch [branch name]

例如:

1
git branch save

3、切换到新的分支

命令如下:

1
git checkout [branch name]

例如:

1
$ git checkout save

4、创建+切换分支

创建分支的同时切换到该分支上,命令如下:

1
git checkout -b [branch name]

git checkout -b [branch name] 的效果相当于以下两步操作:

1
2
git branch [branch name]
git checkout [branch name]

5、将新分支推送到github

命令如下:

1
git push origin [branch name]

例如:

1
git push origin save

6、删除本地分支

命令如下:

1
git branch -d [branch name]

例如:

1
git branch -d save

7、删除github远程分支

命令如下:

1
git push origin :[branch name]

分支名前的冒号代表删除。
例如:

git push origin :save

查看配置信息

1
git config --list

查看状态

1
git status

提交工作区文件到暂存区

  1. 提交工作区中所有文件到暂存区

    1
    git add .
  2. 提交工作区中指定文件到暂存区

    1
    git add <file1> <file2> 
  3. 提交工作区中某个文件夹中所有文件到暂存区

    1
    git add [dir]

提交到本地仓库

  1. 将暂存区中的文件提交到本地仓库中,即打上新版本

    1
    git commit -m "commit_info"
  2. 将所有已经使用git管理过的文件暂存后一并提交,跳过add到暂存区的过程

    1
    git commit -a -m “commit_info”
  3. 提交文件时,发现漏掉几个文件,或者注释写错了,可以撤销上一次提交

    1
    git commit --amend

查看本地仓库关联的远程仓库

  1. 查看本地仓库关联的远程仓库

    1
    git remote
  2. 查看远程仓库的url地址

    1
    git remote -v

解决git pull后本地写的代码没了的问题

第一步:git reflog

第二步:git reset –hard HEAD@{n} (HEAD:为版本号,就前面那一串数字,n是你要回退到的引用位置)

1
git reset --hard 84ef223

创建分支,回退到某个版本

1
2
git branch pagination 96ba9b3
git branch 分支名称 版本号

如果为了测试原来的代码,将它回退到某个版本,但是为了不影响当前分支里面的内容,创建一个新的分支。 如果git branch 分支名称,不加版本号,会在当前版本下创建分支。 如果需要回退到某个版本,需要在创建分支的时候加上版本号。

如果要切换回原来的分支(master),要先对新创建的分支(pagination)的内容提交,这个提交只会提交到pagination分支里面,不会影响到master分支

提交:

1
2
git add .
git commit -m "复习"

切换:

1
git checkout master

解决pre -commit hook failed (add –no-verify)的问题

1
2
3
cd .git

rm hooks/pre-commit

git commit 不单保存了当前的版本号还保存了他的父版本号

查看命令:

1
git / git help

查看所有命令:

1
git help -a

向下翻页:F;向上翻页:B;退出:Q

查看使用手册:

1
git help -g

查看某个命令的详细使用:

如:

1
git help add

按Q可以退出

.git是做版本控制的,如果想去除,直接删了这个目录。

是隐藏文件,在mac 用open .git打开(在.git的上层目录)

config

这些提交会包含在git提交里面

查看config信息
1
git config --list
配置name和email
1
2
git config --global user.name 'winney'
git config --global user.email '...@..'
重置
1
git config --unset --global user.name
重新设置
1
git config --global user.name 'winney'
设置ui
1
git config --global color.ui true

这些配置会保存到一个.gitconfig文件里

1
cat ~/.gitconfig      // ~:代表当前用户的主目录

项目版本管理

初始化项目
1
2
3
mkdir 目录名
cd 目录名
git init // 生成.git目录 用于版本控制 git需要或生成的东西都会放这里面 进行跟踪

如果不想用git跟踪这个项目,可以把.git目录删除掉

查看.git目录

1
2
cd .git
ls

config目录:存储项目配置的信息

Mac系统,视图中查看.git目录

1
open .git     //  回到项目的根目录,执行这句

因在Mac系统中,看不到隐藏的目录

提交

1
git commit -m '备注信息'
1
git log       //  查看提交记录

Git基本工作流程

Git初始化及仓库创建和操作

Git管理远程仓库

Github Pages搭建网站

客户端提交软件

Sourcetree

Hexo博文置顶(自定义排序)

使用的是top属性,top值越高,排序越在前,不设置top值得博文按照时间顺序排序。
修改Hexo文件夹下的node_modules/hexo-generator-index/lib/generator.js

原来代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const config = this.config;
const posts = locals.posts.sort(config.index_ generator.order by);

sort(posts.data, (a, b) => (b.sticky || 0) - (a.sticky || 0));

const paginationDir.config.pagination_ dir || 'page';
const path.config.index_ generator.path || '';

return pagination(path, posts, {
perPage: config.index_ generator.per_page,
layout: ['index', 'archive'],
format: paginationDir + '/%d/',
data: {
_index: true
}
});

改为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use strict';

const pagination = require('hexo-pagination');
const { sort } = require('timsort');

module.exports = function(locals) {
const config = this.config;
const posts = locals.posts.sort(config.index_generator.order_by);

// sort(posts.data, (a, b) => (b.sticky || 0) - (a.sticky || 0));

posts.data = posts.data.sort(function(a, b) {
if(a.top && b.top) { // 两篇文章top都有定义
if(a.top == b.top) return b.date - a.date; // 若top值一样则按照文章日期降序排
else return b.top - a.top; // 否则按照top值降序排
}
else if(a.top && !b.top) { // 以下是只有一篇文章top有定义,那么将有top的排在前面(这里用异或操作居然不行233)
return -1;
}
else if(!a.top && b.top) {
return 1;
}
else return b.date - a.date; // 都没定义按照文章日期降序排
});
const paginationDir = config.pagination_dir || 'page';
const path = config.index_generator.path || '';

return pagination(path, posts, {
perPage: config.index_generator.per_page,
layout: ['index', 'archive'],
format: paginationDir + '/%d/',
data: {
__index: true
}
});
};

1、即在const posts = locals.posts.sort(config.index_generator.order_by);下面添加如下javascript代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
posts.data = posts.data.sort(function(a, b) {
if(a.top && b.top) { // 两篇文章top都有定义
if(a.top == b.top) return b.date - a.date; // 若top值一样则按照文章日期降序排
else return b.top - a.top; // 否则按照top值降序排
}
else if(a.top && !b.top) { // 以下是只有一篇文章top有定义,那么将有top的排在前面(这里用异或操作居然不行233)
return -1;
}
else if(!a.top && b.top) {
return 1;
}
else return b.date - a.date; // 都没定义按照文章日期降序排
});

2、在对应的md文件中添加top属性:

1
2
3
4
5
6
7
8
9
10
---
title: 网站素材
date: 2021-01-08 11:23:25
tags:
- 网站素材
categories:
- 工作笔记
- 网站素材
top: 102
---

参考文献

本地目录

  • 实战项目目录:H:\Gitee\wx_code
  • 参考项目目录:H:\Test_Code\wx_code

云服务器目录

/usr/local/src/webCode/wx

node命令使用之前

1
nvm  use 16.13.0

接口管理

使用apifox

接口文档

项目设置——数据管理——导出数据——Markdown格式

UI框架

开源项目

微信小程序开源项目库集合

企业级微信小程序实战详解

微信小程序开源项目排行榜

微信小程序实战-音乐播放器

微信小程序初始化项目架构

微信小程序项目实战(商城)

微信小程序实战之仿今日头条

课程链接

开发测试号

申请小程序测试号

步骤

  1. 注册【使用未在微信公众平台使用过的邮箱,注册】
  2. 需要有AppID【开发——开发管理——开发设置】
  3. 新建项目【开发阶段,若没有AppID,可使用测试号,上线的时候改为自己的AppID就行】
    • 在微信开发者工具的右上角【详情】中,可以更改AppID

编译模式:

普通编译:默认打开的是首页

如果想调试某个页面,可以添加编译模式

基础库

在本地设置中,可以查看到【调试基础库】,根据对应的版本,查找对应的api

开发阶段,在本地设置中,将”不校验合法域名、web-view(业务域名)、TLS版本以及HITPS证书“勾选上

页面路径

在模拟器的下方,可以看到页面路径和页面参数

结构目录

目录结构

1
tree /f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
├─pages						_____________页面文件夹
│ ├─index _____________首页
│ │ index.js _____________首页的逻辑文件
│ │ index.json _____________首页的配置文件
│ │ index.wxml _____________首页的结构文件
│ │ index.wxss _____________首页的样式文件
│ │
│ └─logs _____________日志 页面
│ logs.js
│ logs.json
│ logs.wxml
│ logs.wxss

└─utils _____________第三方的工具js(可以删除的)
│ util.js
│ .eslintrc.js
│ app.js _____________项目的全局入口文件
│ app.json _____________全局配置文件
│ app.wxss _____________全局样式文件
│ project.config.json _____________项目的配置文件 如appid
│ project.private.config.json
│ sitemap.json _____________微信索引配置文件

sitemap配置 用来配置小程序及其页面是否允许被微信索引

app.json

快速新建目录及里面的相关文件

app.json中的pages属性中,添加"pages/demo/demo",保存之后,会在pages目录中自动创建demo目录,以及demo.wxml、demo.wxss、demo.js、demo.json

1
2
3
4
5
"pages":[
"pages/index/index",
"pages/logs/logs",
"pages/demo/demo"
],

数据绑定

列表渲染

条件渲染

模板

引用,import和include

事件详解

1
<view id="tapTest" data-hi="Weixin" bindtap="tapName"> Click me! </view>
1
2
3
4
5
Page({
tapName: function(event) {
console.log(event)
}
})

dataset

在 WXML 中,这些自定义数据以 data- 开头,多个单词由连字符 - 连接。这种写法中,连字符写法会转换成驼峰写法,而大写字符会自动转成小写字符。如:

  • data-element-type ,最终会呈现为 event.currentTarget.dataset.elementType
  • data-elementType ,最终会呈现为 event.currentTarget.dataset.elementtype

页面配置

1
2
3
4
5
6
7
{
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "微信接口功能演示",
"backgroundColor": "#eeeeee",
"backgroundTextStyle": "light"
}

封装 wx.request方法

utils/request.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//request.js
const baseUrl = 'https://www.winney07.cn:8080/'

const request = (url, method, data) => {
return new Promise((resolve, reject) => {
wx.request({
url: baseUrl + url,
method: method,
data: data,
success: res => {
resolve(res.data)
},
fail: err => {
reject(err)
}
})
})
}

const get = (url, data) => {
return request(url, 'GET', data)
}

const post = (url, data) => {
return request(url, 'POST', data)
}

export default {
baseUrl,
request,
get,
post
}
使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import request from '../../utils/request.js'

// 请求接口,获取数据
async getData() {
const swiperList = await request.get('shopping/swiper');
const tabList = await request.get('shopping/good/tabList');
const goodList = await request.get('shopping/good/getGoodList');
this.setData({
swiperList,
tabList,
goodList
})
},

/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.getData();
},

父子组件之间传值

父组件:

1
<good-list goodsList="{{goodsList}}"></good-list>

子组件.js:

1
2
3
4
5
6
7
8
Component({
properties: {
goodsList: {
type: Array,
value: []
}
},
})

子组件.wxml:

1
2
3
4
5
6
7
<view class="good-list">
<block
wx:for="{{ goodsList }}"
wx:key="index">
<good-card class="good-item" i="{{index}}" data="{{item}}"></good-card>
</block>
</view>

事件监听

传参

goods/category/index

1
2
3
4
5
6
7
8
9
10
<van-grid-item 
use-slot
class="grid-item"
data-groupid="{{item.groupId}}"
bindtap="toList">

.....
.....
.....
</van-grid-item>
1
2
3
4
5
6
7
8
toList(event) {
console.log('event');
console.log(event.currentTarget.dataset); // {groupid: "249480"}
let groupid = event.currentTarget.dataset.groupid;
wx.navigateTo({
url: `/pages/goods/list/index?groupid=${groupid}`
})
},

在元素中自定义的data-属性,在event.currentTarget.dataset中。

获取URL传来的参数:

goods/list/index.js

1
2
3
4
onLoad(options) {
console.log('options');
console.log(options); // {groupid: "249480"}
},

微信小游戏

微信小游戏账号注册教程

在微信开发者中,创建小游戏项目,进入项目后,界面是黑色的。

需要注册个测试号(这个测试号是针对小游戏的)

  1. 开发测试号

  2. 申请小程序测试号

  3. 在微信开发中创建小游戏项目时,选择”测试号“,进入项目,即可正常显示

微信公众平台用户信息相关接口调整公告

报错信息

微信小程序编译遇到 ReferenceError: regeneratorRuntime is not defined 解决办法

解析方法:

打包前,在js文件中加入

1
import regeneratorRuntime from "./runtime"

在地图上显示当前位置

  1. .json页面中进行配置permission
1
2
3
4
5
6
7
8
9
10
11
12
{

"pages":[
"pages/index/index",
"pages/logs/logs"
],
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示" // 高速公路行驶持续后台定位
}
}
}
  1. 获取位置
1
2
3
4
5
6
7
8
9
10
11
wx.getLocation({
type: 'wgs84',
success: (res) => {
var latitude = res.latitude // 纬度
var longitude = res.longitude // 经度
console.log('维度')
console.log(latitude)
console.log('经度')
console.log(longitude)
}
})

微信开发者工具-关闭声音

关闭声音