<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Afreshmemory的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Afreshmemory</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Afreshmemory]]></copyright><item><title><![CDATA[vue - element ui 动态表单校验]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/123451241</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/123451241</guid><author>Afreshmemory</author><pubDate>Sat, 12 Mar 2022 22:27:23 +0800</pubDate><description><![CDATA[elment ui 动态表单校验]]></description><category></category></item><item><title><![CDATA[nvm 管理node版本]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/123338230</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/123338230</guid><author>Afreshmemory</author><pubDate>Mon, 07 Mar 2022 20:09:13 +0800</pubDate><description><![CDATA[nvm  路径中文乱码]]></description><category></category></item><item><title><![CDATA[vue axios 取消上一次（重复）请求]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/123280711</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/123280711</guid><author>Afreshmemory</author><pubDate>Fri, 04 Mar 2022 17:01:24 +0800</pubDate><description><![CDATA[思路：

1.定义一个Map用来存储发送请求的取消【函数】标识。

2.在请求拦截器中，移出重复的请求【重复请求是指：方法 + 路径 + 入参 相同】。

3.在请求拦截器中，发送请求前存储取消标识到Map中。

4.在响应拦截器中，移出请求。


import axios  from "axios";
let pendingMap = new Map();

/**
 * 取消正在发送的请求
 * @param {*} config 
 */
let removePending = function(co]]></description><category></category></item><item><title><![CDATA[vue - 放大镜组件]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/123262578</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/123262578</guid><author>Afreshmemory</author><pubDate>Thu, 03 Mar 2022 20:07:40 +0800</pubDate><description><![CDATA[最近在整理之前的代码,所以将 放大镜以组建的形式整理了一下，如果你的组件中的图片数据是通过接口获取，你可以在组件的 mounted钩子函数中调用接口


&lt;template&gt;
  &lt;div class="magnifier-container"&gt;
    &lt;div class="magnifier-mian" @mousemove="glassMoveHandle" @mouseleave="glassLeaveHandle"&gt;
      &lt;img ref="or]]></description><category></category></item><item><title><![CDATA[vue 自定义指令 权限指令]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/123191128</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/123191128</guid><author>Afreshmemory</author><pubDate>Mon, 28 Feb 2022 20:33:20 +0800</pubDate><description><![CDATA[目前项目中需要做到按钮级别的控制,所以想到了自定义指令来实现,在自定义指令中来控制组件的显示于隐藏。

1.第一步创建自定义指令 js 文件: permission.js

2.在main.js中直接引入import '@.../../permission' 文件


// permission.js
import Vue from "vue"
// 立即执行函数,这样可以在mian函数直接引入文件不需要写而外的代码
(function(){
  Vue.directive("permission",{..]]></description><category></category></item><item><title><![CDATA[css 居中]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/123149056</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/123149056</guid><author>Afreshmemory</author><pubDate>Sat, 26 Feb 2022 14:29:15 +0800</pubDate><description><![CDATA[水平居中

行内元素【水平居中】，设置父元素为块级元素,在设置 text-align 为 center


.parent {
    display: block;
    text-align: center;
}



块级元素【水平居中】

定宽：谁居中, 谁设置 margin: 0 auto

不定宽：需要将自身转换为行内元素[display: inline-block| inline],在以行内元素的形式设置。

定位属性居中

首先设置父元素为相对定位，子元素为绝对定位，子元素设置 lef..]]></description><category></category></item><item><title><![CDATA[js 的深拷贝和浅拷贝]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/123096402</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/123096402</guid><author>Afreshmemory</author><pubDate>Wed, 23 Feb 2022 19:02:38 +0800</pubDate><description><![CDATA[要讲 js 的深浅拷贝就必须了解js的数据类型

基本数据类型：null、undefined、number 、string 、boolean 、symbol（es6）

引用数据类型：Object，Array, Map ....

数据赋值

- 基本数据类型拷贝对象的值，两个变量的值相等但是确实两个不同的变量。

- 引用数据类型拷贝的是对象的地址，两个变量指向同一个对象实例。改变其中一个变量的属性都会影响两外一个变量。【其实就是赋值了一个地址，但是没有创建新的对象】

深浅拷贝是对引用数据类型来说的

]]></description><category></category></item><item><title><![CDATA[ajax ? 如何创建一个ajax请求]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/123069925</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/123069925</guid><author>Afreshmemory</author><pubDate>Tue, 22 Feb 2022 16:12:59 +0800</pubDate><description><![CDATA[1. 创建 XMLHttpRequest 对象。

2. 创建一个HTTP请求,并指定请求的：方法、URL、验证信息。

3. 设置响应请求状态变化的函数。

4. 发生请求。

5. 在回调函数中处理请求返回的数据。

6. 使用javascript和Dom实现局部刷新。


const url = "./api"
let xhr = new XMLHttpRequest();
xhr.open("GET",url,true);
// 请求状态变化事件
xhr.onreadystatechange = f]]></description><category></category></item><item><title><![CDATA[基于 wx.request 封装类似axios的拦截器]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/114008563</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/114008563</guid><author>Afreshmemory</author><pubDate>Tue, 22 Feb 2022 15:22:11 +0800</pubDate><description><![CDATA[基于 wx.request 封装类似axios的拦截器]]></description><category></category></item><item><title><![CDATA[linux 安装 nginx 部署 vue项目]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/108325582</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/108325582</guid><author>Afreshmemory</author><pubDate>Thu, 22 Oct 2020 20:19:38 +0800</pubDate><description><![CDATA[apt-get 安装 nginx
sudo apt install nginx

开启防火墙
ufw app list        			//获取应用程序文件的列表
ufw status    					//查看防火墙状态
ufw allow 80 					//开启80端口号 // ufw allow 'Nginx HTTP'
systemctl status nginx  		//查询服务器状态
systemctl start nginx.service 	//启动服务
systemctl enabl]]></description><category></category></item><item><title><![CDATA[linux 安装 mysql 8.0.21]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/108098901</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/108098901</guid><author>Afreshmemory</author><pubDate>Wed, 19 Aug 2020 15:36:11 +0800</pubDate><description><![CDATA[apt-get 安装
sudo apt-get install mysql-server    //mysql服务器
sudo apt-get install mysql-client   //mysql客户端

//连接mysql
mysql -u root -p  
mysql -h 127.0.0.1 -P 3306 -u root -p 123456

数据库目录：/var/lib/mysql/
配置文件目录：/usr/share/mysql   /etc/mysql
相关命令目录：/usr/bin]]></description><category></category></item><item><title><![CDATA[SQL Server 利用时间类型的字段的数据统计]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/106657696</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/106657696</guid><author>Afreshmemory</author><pubDate>Wed, 10 Jun 2020 08:57:28 +0800</pubDate><description><![CDATA[时间类型的数据统计
时间类型的内置函数及意义：

year(WriteTime)：返回WriteTime日期类型的年部分例如：2020
month(WriteTime)：返回WriteTime日期类型的月部分例如：1，2，3…12
day(WriteTime)：返回WriteTime日期类型的日部分例如：1，2，3…31

 --按年分组统计
  select year(WriteTime) as Year, isnull(Sum(Cny),0) as Cny from t_tmp group by yea]]></description><category></category></item><item><title><![CDATA[用户身份验证]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/106560113</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/106560113</guid><author>Afreshmemory</author><pubDate>Thu, 04 Jun 2020 23:18:25 +0800</pubDate><description><![CDATA[Http协议
http请求是无状态的，所以每次web请求都是相互独立的。但是在某些网站我们又需要我们登录，否则就不能访问某些页面。然而我们又不希望用户每次访问页面都需要输入用户名和密码，每次输入对用户体验来说是及其不好的。所以我们希望服务器在用户登录的时候记住这个用户已经登录了，当该用户访问其他需要登录的页面时，我们只要校验这个用户之前有没有登录就行了。所以有以下方式。
Session
session其实就是服务端的cookie，与cookie不同的是session是存储在服务器上的，而cookie是存储在]]></description><category></category></item><item><title><![CDATA[redis-cluster集群(windows下的单机集群)]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/106528241</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/106528241</guid><author>Afreshmemory</author><pubDate>Wed, 03 Jun 2020 17:15:16 +0800</pubDate><description><![CDATA[构建之前的安装下载准备
1.下载redis
2.下载并安装ruby 安装到:C:\Ruby22-*64 　http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe
3.下载ruby环境下的Redis的驱动  https://rubygems.org/gems/redis/versions/3.2.2
4.在git 上直接搜索 redis-trib.rb 克隆下来 将redis-trib.rb文件复制到redis的解压目录]]></description><category></category></item><item><title><![CDATA[SQL  建表与索引]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/106458483</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/106458483</guid><author>Afreshmemory</author><pubDate>Sun, 31 May 2020 18:47:16 +0800</pubDate><description><![CDATA[创建表

varchar(max) 类型，最大容量2G的字符,只是直接用sql语句查询时会被截断不能完整显示
primary key  (主属性)主键约束
check	属性的范围约束
unique 唯一性约束

create table User(
	userid	int	primary key not null,
	nick	varchar(64)	not null,
	age	int	not null	check(age &gt;= 0 and age &lt;= 120) default(0),
	s]]></description><category></category></item><item><title><![CDATA[创建存储过程模板]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/88967902</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/88967902</guid><author>Afreshmemory</author><pubDate>Tue, 02 Apr 2019 12:05:25 +0800</pubDate><description><![CDATA[create proc [dbo].[wp]
@tablename varchar(64)
as
set nocount on
set transaction isolation level read uncommitted
set xact_abort on
begin
–判断表存不存在
declare @tableid int = object_id(@tablename)
if @table...]]></description><category></category></item><item><title><![CDATA[sql 排名问题与分页]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/86595233</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/86595233</guid><author>Afreshmemory</author><pubDate>Tue, 19 Feb 2019 12:05:25 +0800</pubDate><description><![CDATA[SQL server排名问题
利用SQL系统函数排名
row_number() , rank() ,dense_rank(),ntile()
=&amp;amp;gt;row_number():将select 查询到的数据进行排序，每条数据加一个序号，不能用作排名，一般用作排序
用法：
 select row_number() over(order by studentscore desc),* from  t_...]]></description><category></category></item><item><title><![CDATA[C# 后台发送http请求]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/87368919</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/87368919</guid><author>Afreshmemory</author><pubDate>Mon, 18 Feb 2019 15:22:13 +0800</pubDate><description><![CDATA[public class WRequestHelper
        {
            private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
            {
      ...]]></description><category></category></item><item><title><![CDATA[基于jquery导航栏]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/85219761</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/85219761</guid><author>Afreshmemory</author><pubDate>Sun, 23 Dec 2018 00:22:36 +0800</pubDate><description><![CDATA[基于Jquery实现的导航栏]]></description><category></category></item><item><title><![CDATA[SQL 列传行，行转列]]></title><link>https://blog.youkuaiyun.com/Afreshmemory/article/details/79490731</link><guid>https://blog.youkuaiyun.com/Afreshmemory/article/details/79490731</guid><author>Afreshmemory</author><pubDate>Thu, 08 Mar 2018 21:59:34 +0800</pubDate><description><![CDATA[SQL行转列(pivot)与列转行(unpivot): 
    做数据统计时，行转列,列转行是经常遇到的问题。case when 方式太麻烦且拓展性不强。 
    可以使用pivot，unpivot实现，且拓展良好pivot:    select * 
    from [StudentScores] as  P 
    pivot( 
           Sum(Score /*行转列后]]></description><category></category></item></channel></rss>