安装
以最近的 uniapp 开发微信小程序为例。
12npm install @supabase/supabase-jsnpm install supabase-wechat-stable-v2
配置数据库连接
12345678//fireDb.tsimport { createClient } from "supabase-wechat-stable-v2"//这两个常量可以在MemFireDb官网数据库的api中找到const supabaseUrl = "https://xxxx.baseapi.memfiredb.com";const publicAnonKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";// Create a single supabase client for interacting with your databaseexport const supabase = createClient(supabaseUrl, publ ...
安装
1npm i -g typescript
编译ts文件
使用该命令可以将 ts 文件转换成可执行的 js 文件。
1tsc xxx.ts
通过 node 命令执行相应的 js 文件。
1node xxx.js
直接运行ts文件
先安装所需工具包。
1npm i -g ts-node
使用该工具包直接执行 ts 文件。
1ts-node xxx.ts
使用时的一些小问题
类型本身定义是错误的
比如,在使用 MemFireDB 的微信SDK开发小程序的时候,我使用了一个方法用于获取用户信息。
1const { data: { user } } = await supabase.auth.getUser();
对于 user 对应的官方 type 是 User,如下所示。
123456789101112131415161718192021222324interface User { id: string app_metadata: UserAppMetadata user_metadata: UserMetadata ...
在vscode中开发uniapp
使用命令行创建uniapp项目
此处是vue3+ts。
1npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project
安装插件
uni-create-view
uni-helper
uniapp小程序扩展
TS相关
在根目录创建 tsconfig.json 文件,并进行个性化配置,个性化配置是可选的,没有tsconfig.json时会自动使用默认配置运行。推荐配置如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546// tsconfig.json{ "compilerOptions": { "target": "esnext", "module": "esnext", "strict": true, & ...
安装nrm
1npm install -g nrm
查看镜像源
1nrm ls
选用镜像源
1nrm use xxx
比如nrm use taobao。当 npm 命令卡进度的时候,请先查看当前源是否是镜像源,因为在2024年6月22日这天突然发现变回了默认源,切换为镜像源后恢复正常。
快速排序
选取基准值(分界值)x,可以是数组的第一个元素,也可以是数组的最后一个元素,中间元素亦可。
使用双指针 i 和 j 从数组的两端开始扫描,从左端找到一个>=x的值a,从右端找到一个<=x的值b,交换ab的值,交换后i以及i之前的元素都小于等于x,j以及j之后的元素都大于等于x。交换后i应递增,j应递减,继续查找可以交换的值,知道ij相遇甚至错开(i > j)。
当数组成功划分两部分,左部分小于等于x,右部分大于等于x的时候,左右两部分分别递归调用快速排序。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859//// Created by Kahiva on 2024/1/4.//#include <iostream>using namespace std;const int N = 100010;int t[N];void quick_sort(int l, int r)& ...
六、哈夫曼树
1.合并果子
12345678910111213141516171819202122232425262728293031323334353637383940414243//// Created by Kahiva on 2023/10/31.////https://www.acwing.com/problem/content/150///使用哈夫曼树的知识合并果子堆,计算最小花费体力#include <iostream>#include <algorithm>#include <queue>#include <vector>using namespace std;int main(){ //定义一个优先队列,第一个参数是队列元素的类型,第二个是使用的容器类型,第三个是排序方式。 //此处使用升序排序,即小的元素优先出队。 priority_queue<int, vector<int>, greater<int>> stones_heap; int n; ...
1.设置可执行程序输出目录
1set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")
2.将cpp文件添加为“生成可执行文件”的源文件
1add_executable(AcWing3375 Acwing/graduate/AcWing3375.cpp)
完整的cmake设置
123456789cmake_minimum_required(VERSION 3.24)#指定cmake工程名project(algorithm)#c++版本set(CMAKE_CXX_STANDARD 14)# 指定可执行程序输出目录set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")add_executable(AcWing3375 Acwing/graduate/AcWing3375.cpp)
附:普通的gitignore文件
123/.idea//cm ...
安装
响应式布局,是为五个不同的屏幕尺寸制定不同的显示比例。这是网页收缩导致网页布局变乱的究极解决方案。
包的类型
项目包:用于编写项目和和业务逻辑
软件包:封装工具和方法进行使用
本地软件包:当前项目内使用,封装属性和方法,存在于 node_modules中。
全局软件包:本机所有项目使用,封装命令和工具,存在于系统设置的位置。
软件包的结构
如下图所示。整个util包由三部分组成,libs、index.js、package.json。
libs中,存放工具包的源代码 js 文件。
index.js文件作为入口文件,通过这个文件统一暴露对外工具方法等。
package.json文件,描述包的一些信息。
libs示例
1234567891011//printHello.jsfunction printHello() { console.log("Hello,Adong. It's your first tools package.")}const words = "How old are you?"module.exports = { printHello, words& ...