归档

vue组件之插槽

这篇文章的写作时间是 vue2.6 发布后,因此适用于 2.6 以后的版本
插槽是 vue 组件中很重要的一环,他解决了组件内容自定义的问题。以及父子组件变量传递的问题(作用域插槽)。
在 2.6 以后的版本中,具名插槽和作用域插槽引入了一个新的统一的语法 (即 v-slot 指令),它取代了 slot 和 slot-scope 。这两个老的已经进入废弃期,为了保持平滑升级,目前还可以使用,但是不推荐使用。后期会被移除。

省略sudo使用docker

安装 docker

1
wget -qO- https://get.docker.com/ | sh

1
sudo apt install docker

原理

为什么需要创建 docker 用户组?
Docker 守候进程绑定的是一个 unix socket,而不是 TCP 端口。这个套接字默认的属主是 root,其他是用户可以使用 sudo 命令来访问这个套接字文件。因为这个原因,docker 服务进程都是以 root 帐号的身份运行的。

使用阿里云ecs主机打造shadowsocks服务器,实现科学上网

要想打造一台自己的ss(shadowsocks)或ssr(shadowsocksR)服务器。要具备一下条件:

  1. 要有一台自己的服务器vps或ecs云主机都可以,虚拟主机是不行滴
  2. 服务器一定要在海外或中国香港。推荐日、韩、香港、新加坡服务器
    下面已阿里ecs为实例说明,主要是ecs降价了366/年的价格速度很快。比网上说的搬瓦工、Vultr强多了。

VirtualBox v5.2.12 Ubuntu18.04 宿主机和虚拟主机互通,都可上网配置方式

全局设置

点击管理,全局设置;
选择网络,里面只有 NAT 网络;
点击添加,列表新增 NatNetwork,点击确定。

虚拟机配置

点击管理,选择主机网络管理;
选择创建,列表新增 vboxnet0,只要这一个就够了;
选中点击 vboxnet0,点击手动配置网卡;
点击 IPv4 地址,输入配置的网关 IP,如:192.168.56.1;
如果不想使用 DHCP,取消启用 DHCP,点击应用。

给虚拟机添加网卡

右键点击一个虚拟主机,选择设置;
选择网络;
选中点击网卡 1,勾选启用网络连接;
连接方式选择网络地址转换(NAT),界面可以空着;
选中点击网卡 2,勾选启用网络连接;
连接方式选择仅主机(Host-Only)网络,界面名称为 vboxnet0,点击确认。

设计模式基本原则大白话

单一职责原则

简单点说就是最小化封装,一个方法只负责一个功能,一个类只负责一类功能。如果一个功能比较复杂,那就差分成多个小功能,然后去实现。
这样做的好处是

  • 可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
  • 提高类的可读性,提高系统的可维护性;
  • 变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

里氏替换原则

简单点说就是子类可以扩展父类的功能,但不能改变父类原有的功能。
注意一下几点即可

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  • 子类中可以增加自己特有的方法。
  • 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

这样做可以有效避免,功能耦合度太高,改一个小功能影响到其他功能的情况

依赖倒置原则

依赖倒置就是控制翻转,又名 IOC,简单点说,就是将需要的外部对象,通过构造函数参数传递或属性赋值的方式,让当前对象可以使用注入的外部对象。
注意一下几点即可

  • 低层模块尽量都要有抽象类或接口,或者两者都有。
  • 变量的声明类型尽量是抽象类或接口。
  • 使用继承时遵循里氏替换原则

这样做可以有效解耦,功能发生改变时,只需要替换外部的依赖对象,而不必修改主体功能代码。

vscode 保存自动按eslint格式化

三步走:

  1. 安装 vuter,eslint,Prettier-code fromatter
    vuter 是 vue 高高亮插件,安装后 vscode 就可以识别.vue文件了
  2. 配置 vscode 首选项
    选择 file 》Preferences 》Settings 打开配置。然后选择 User Settings,点击右上角的{}按钮,进入文本编辑状态
  3. 配置内容