<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yang_web的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yang_web</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yang_web]]></copyright><item><title><![CDATA[基于element-ui的table组件封装的合并列组件（很灵活）]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/125768215</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/125768215</guid><author>yang_web</author><pubDate>Wed, 13 Jul 2022 17:13:20 +0800</pubDate><description><![CDATA[基于element-ui封装table合并列]]></description><category></category></item><item><title><![CDATA[elementUI的日期选择组件只能选择当前年的日期，不能选择之前年和之后年的日期]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/124634656</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/124634656</guid><author>yang_web</author><pubDate>Sat, 07 May 2022 16:58:45 +0800</pubDate><description><![CDATA[elementUI的日期选择组件只能选择当前年的日期，不能选择之前年和之后年的日期
 &lt;el-date-picker
   v-model="form.nowYear"
   type="date"
   format="yyyy-MM-dd"
   value-format="yyyy-MM-dd"
   placeholder="选择当前年份"
   :picker-options="pickerOptions"
 /&gt;

pickerOptions: {
    disabledDate(]]></description><category></category></item><item><title><![CDATA[改写el-tree实现角色权限设置]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/124328134</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/124328134</guid><author>yang_web</author><pubDate>Thu, 21 Apr 2022 18:07:39 +0800</pubDate><description><![CDATA[改写el-tree实现角色权限设置

取消el-tree自带的父子关系，自己通过递归实现父子关系，这样在选中其中一个子级的时候，父级也会勾选，点击父级也可以全选和取消全选等 ，能够随心控制

&lt;template&gt;
 
      &lt;el-tree
        ref="tree"
        :data="data"
        node-key="menuId"
        :check-strictly="true"
        :props="props"
   ]]></description><category></category></item><item><title><![CDATA[导出或者下载文件流封装（兼容ie9以上）]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/124292430</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/124292430</guid><author>yang_web</author><pubDate>Wed, 20 Apr 2022 11:00:28 +0800</pubDate><description><![CDATA[导出或者下载文件流封装（兼容ie9以上）]]></description><category></category></item><item><title><![CDATA[vue开发封装思路--api篇]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/124291939</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/124291939</guid><author>yang_web</author><pubDate>Wed, 20 Apr 2022 10:53:40 +0800</pubDate><description><![CDATA[vue开发封装思路--api篇]]></description><category></category></item><item><title><![CDATA[动态表单 自定义布局(代码实现)]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/121700771</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/121700771</guid><author>yang_web</author><pubDate>Fri, 03 Dec 2021 16:05:26 +0800</pubDate><description><![CDATA[动态表单的实现]]></description><category></category></item><item><title><![CDATA[vue拖拽生成动态表单（可缩放和自定义布局）]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/121494810</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/121494810</guid><author>yang_web</author><pubDate>Tue, 23 Nov 2021 16:00:35 +0800</pubDate><description><![CDATA[vue拖拽生成动态表单（可缩放和自定义布局）

如果需要源码，可以在评论区留言

]]></description><category></category></item><item><title><![CDATA[dart中的抽象类、多态、接口、泛型、late、required]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/120749641</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/120749641</guid><author>yang_web</author><pubDate>Wed, 13 Oct 2021 18:24:46 +0800</pubDate><description><![CDATA[抽象类

抽象类通过abstract 关键字来定义
抽象类不能被实例化，只有继承它的子类可以
抽象类里面的抽象方法 在继承的时候必须要定义这些方法
如果子类继承抽象类必须得实现里面的抽象方法
如果把抽象类当做接口实现的话必须得实现抽象类里面定义的所有属性和方法。

多态

多态就是父类定义一个方法不去实现，让继承他的子类去实现，每个子类有不同的表现。
多个子类继承一个父类，每个子类的抽象方法逻辑不一样

late
延迟初始化  定义变量没有赋值的时候需要在前面加late
require
参数不能为空
imp]]></description><category></category></item><item><title><![CDATA[dart语法（一）]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/120749580</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/120749580</guid><author>yang_web</author><pubDate>Wed, 13 Oct 2021 18:20:03 +0800</pubDate><description><![CDATA[真实的从零开始的学习dart语法，可以看代码注释进行理解

//[]可选参数
String fun1(String name, [int age = 10, String sex = '男']) {
  return '$name-----$age';
}

//{} 传参 fun2('xx',age:10)
String fun2(String name, {required int age, String sex = '男'}) {
  return '$name-----$age';
}

int .]]></description><category></category></item><item><title><![CDATA[linux安装nginx]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/120670296</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/120670296</guid><author>yang_web</author><pubDate>Sat, 09 Oct 2021 14:24:12 +0800</pubDate><description><![CDATA[1.环境安装
0.1 gcc 安装

安装 nginx 需要先将官网下载的源码进行编译，编译依赖 gcc 环境，如果没有 gcc 环境，则需要

安装：

yum install gcc-c++
 

0.2 PCRE pcre-devel安装

PCRE（Perl Compatible Regular Expressions）是一个Perl库，包括 perl 兼容的正则表达式库。

nginx 的 http 模块使用 pcre 来解析正则表达式，所以需要在 linux 上安装 pcre 库，pcre-de]]></description><category></category></item><item><title><![CDATA[linux安装和启动mysql]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/120670251</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/120670251</guid><author>yang_web</author><pubDate>Sat, 09 Oct 2021 14:22:35 +0800</pubDate><description><![CDATA[1）彻底删除
首先查看：
rpm -qa|grep -i mysql 

删除操作（一个一个删除）：
yum remove '软件名'

查看关于mysql的文件：
find / -name mysql

对于顽固的文件夹：
rm -rf 文件名（删除）

2 ）下载安装
如果无法执行wget命令，则先安装wget：
yum -y install wget

下载MySql：
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noa]]></description><category></category></item><item><title><![CDATA[flutter基础]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/120670167</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/120670167</guid><author>yang_web</author><pubDate>Sat, 09 Oct 2021 14:20:03 +0800</pubDate><description><![CDATA[StatefulWidget和StatelessWidget

StatefulWidget ： 具有可变状态的窗口部件，也就是你在使用应用的时候就可以随时变化，比如我们常见的进度条，随着进度不断变化。
StatelessWidget：不可变状态窗口部件，也就是你在使用时不可以改变，比如固定的文字（写上后就在那里了，死也不会变了）。

第01节：Text Widget 文本组件的使用
import 'package:flutter/material.dart';
void main () =&gt; run]]></description><category></category></item><item><title><![CDATA[windows中flutter的环境搭建]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/120544120</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/120544120</guid><author>yang_web</author><pubDate>Wed, 29 Sep 2021 10:46:55 +0800</pubDate><description><![CDATA[系统的基本要求

操作系统:必须windows7以上64位操作系统。（这个一般都能很好的满足）
磁盘空间：大于3个G，虽然官方说的是400M，但是你还需要安装Android Studio 和 虚拟机，所以至少要3个G左右，如果能达到5个G就更好了（满足多个虚拟机的要求）。
需要Git环境：Flutter需要git环境的支持，所以这个也要有，作为一个前端，这个是必备工具，所以我在文章中就不教大家安装了。

JAVA环境的安装
链接：https://pan.baidu.com/s/1fcP6n8jTbpZ0ti]]></description><category></category></item><item><title><![CDATA[vue组件封装之下拉刷新上拉加载（原生）]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/120449827</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/120449827</guid><author>yang_web</author><pubDate>Fri, 24 Sep 2021 10:29:24 +0800</pubDate><description><![CDATA[基于vue和原生javascript封装的下拉刷新上拉加载组件

upTilte插槽是下拉刷新的自定义内容放的地方
downTilte插槽是上拉加载的自定义内容放的地方
默认插槽为列表内容区域
组件代码如下

&lt;template&gt;
  &lt;div class="refresh" id="refresh"&gt;
    &lt;slot name="upTilte"&gt;&lt;/slot&gt;
    &lt;slot&gt;&lt;/slot&gt;
    &lt;slot nam]]></description><category></category></item><item><title><![CDATA[数组方法的重写]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/120084804</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/120084804</guid><author>yang_web</author><pubDate>Fri, 03 Sep 2021 16:29:04 +0800</pubDate><description><![CDATA[/**
     * 数组扩展方法重写
    */
 	Array.prototype.myforEach = function (cb) {
        var _arr = this
        var _len = this.length
        var _th = arguments[1] || window
        for (var i = 0; i &lt; _len; i++) {
            cb.apply(_th, [_arr[i], i, _ar.]]></description><category></category></item><item><title><![CDATA[用Promise实现一个请求超时]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/120084042</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/120084042</guid><author>yang_web</author><pubDate>Fri, 03 Sep 2021 16:15:03 +0800</pubDate><description><![CDATA[用Promise实现一个请求超时

今天面试了一家公司，面试官问了一个‘能不能自己实现一个请求超时’，刚开始还是有点慌的，经过思考有了一些思路
请求请求！！第一时间想到的就是promise
刚好promise有个api是promise.race（[api1,api2…]）,这个api会优先返回最快的那一个请求

   let rest = function (_data = 4000) {
        return Promise.race([
            upload(),
       ]]></description><category></category></item><item><title><![CDATA[vite2.0+vue3.0+ts]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/118796109</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/118796109</guid><author>yang_web</author><pubDate>Fri, 16 Jul 2021 14:54:55 +0800</pubDate><description><![CDATA[vite2.0+vue3.0+ts
1、template中可以有多个根元素，以前只能包在一个父容器中
&lt;template&gt;
&lt;p&gt;{{count}}&lt;/p&gt;
&lt;el-button type="primary" @click="clickTo"&gt;子组件&lt;/el-button&gt;
&lt;el-button type="primary" @click="go"&gt;跳转&lt;/el-button&gt;
{{state.sum}}
&lt;van-b]]></description><category></category></item><item><title><![CDATA[socket的通讯流程]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/118091784</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/118091784</guid><author>yang_web</author><pubDate>Mon, 21 Jun 2021 17:56:16 +0800</pubDate><description><![CDATA[socket的通讯流程


服务器端（电话的一端，接听电话者）：


1、创建socket，表示有了一个电话


2、绑定socket和端口号，相当于，电话对应了一个电话号码


3、监听端口号，相当于，把电话插上电话线，可以随时等待有人拨通电话


4、接收客户端的连接请求，相当于有人打来了电话


5、从socket中读取字符，相当于，接起电话，有语音信息传输过来了


6、关闭socket，相当于通话完成后，挂掉电话


客户端：


1、 创建socket，表示有了一个电话（当然也默认绑定了端口号）]]></description><category></category></item><item><title><![CDATA[formidable接收图片]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/118091743</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/118091743</guid><author>yang_web</author><pubDate>Mon, 21 Jun 2021 17:54:34 +0800</pubDate><description><![CDATA[&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="ie=edge"&gt;
    &lt;title&gt;Do]]></description><category></category></item><item><title><![CDATA[nodeJs]]></title><link>https://blog.youkuaiyun.com/yang_web/article/details/118091675</link><guid>https://blog.youkuaiyun.com/yang_web/article/details/118091675</guid><author>yang_web</author><pubDate>Mon, 21 Jun 2021 17:51:30 +0800</pubDate><description><![CDATA[nodeJS
一、nodeJS介绍
二、原生nodeJS
1、模块：http，fs，path，
​	1）、http
​           http.createServer(); 创建服务器的
​    2)、fs
​           fs.readFile(); 读取文件的
​    3）、path
​           path.extname(); 获取扩展名
​
2、对象：req(请求对象)，res（响应对象）
​     1）、req（请求对象）
​            req.url;]]></description><category></category></item></channel></rss>