Pinia 的介绍及使用
概述
为什么要用 pinia?在前端开发过程中,我们需要进行本地内容存储,全局变量存储,此时如果只是用localstorage,开发过程中会比较繁琐,并且当遇到需要监听存储数据变化时,需要设置一些内容。但是如果使用了 pinia 以及 vuex 这些存储工具,会极大的减轻开发工作量。
使用安装使用安装下载123yarn add pinia# or with npmnpm install pinia
main.js 中引入123import { createPinia } from 'pinia'const pinia = createPinia()createApp(App).use(pinia).mount('#app')
根目录新建 store/index.js 中写入1234<script setup> import { useStore } from '../store' const store = useStore(); </script>
Stat ...
python Scrapy 爬虫框架介绍
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。
架构概览![[Pasted image 20221209100634.png]]
各组件作用Scrapy Engine引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。 详细内容查看下面的数据流(Data Flow)部分。
此组件相当于爬虫的“大脑”,是整个爬虫的调度中心。
调度器(Scheduler)调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。
初始的爬取URL和后续在页面中获取的待爬取的URL将放入调度器中,等待爬取。同时调度器会自动去除重复的URL(如果特定的URL不需要去重也可以通过设置实现,如post请求的URL)
下载器(Downloader)下载器负责获取页面数据并提供给引擎,而后 ...
Markdown 快捷键
简单记录一些 markdown 的快捷键,方便以后查阅。
名称
语法
标题
用#号表示,#一级标题,##表示二级标题,依次类推
字体加粗
左右用两个* 包裹起来
斜体字
左右用一个* 包裹起来
加粗斜体
左右用三个* 包裹起来
删除线
左右用两个~~ 包裹起来
>引用
在文字开头添加>表示引用说明
代码块
通过或者4个空格缩进表示|Ctrl+K`
有序列表
直接在文字前加1. 2.符号要和文字之间加上一个字符的空格表示
无序列表
文字前加上 - 或 * 即可变为无序列表
图片
在光标所在行插入图片
生成目录
[TOC]表示,特殊,CSDN博客支持该语法
分割线
一行连续使用三个*** — ———表示分割线
链接
通过百度写法表示超链接
表格
第一行:
Markdown 中的表格要添加表,请使用三个或多个连字符(---)创建每列的标题,并使用管道(|)分隔每列。您可以选择在表的任一端添加管道。
1234| Syntax | Description || ----------- | ------- ...
vue3 setup 语法糖的一些注意点
这篇文章主要记录一些 setup 语法糖需要注意的地方,之后关于 setup 的小问题就不会新开文章了。
1. vue 中 this.refs 在 setup 语法糖中的使用方法vue :1<base-input ref="usernameInput"></base-input>
在 js 代码中可以通过下面的方法访问 usernameInput:
1this.$refs.usernameInput
可以调用里面的方法:
123// 假设 base-input 组件内有方法foo this.$refs.usernameInput.foo();
vue3使用:父组件调用子组件的时候设置ref值:
1<ChildVue ref="childRef" />
设置完成后,vue3可以通过ref方法获取:
1const childRef = ref();
调用:
1childRef.value.foo(); // foo
2. vue2 和vue3的生命周期对比vue2 的生命周期:
创建数据代理、数据检测before ...