<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LGDmar的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LGDmar</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LGDmar]]></copyright><item><title><![CDATA[electron+vue3+vite2 如何使用打印]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/119700379</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/119700379</guid><author>LGDmar</author><pubDate>Sat, 14 Aug 2021 14:36:32 +0800</pubDate><description><![CDATA[electron打印大概有两种：
第一种：通过window的webcontent对象，使用此种方式需要单独开出一个打印的窗口，可以将该窗口隐藏，但是通信调用相对复杂。
第二种：使用页面的webview元素调用打印，可以将webview隐藏在调用的页面中，通信方式比较简单。
两个对象调用打印方法的使用方式都一样。
本文是通过第二种方法实现静默打印。

作者：Danile_1226
链接：https://www.jianshu.com/p/cc0751955826
来源：简书
著作权归作者所有。商业转载请联系作]]></description><category></category></item><item><title><![CDATA[vue 实现手机端显示pdf]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/111830539</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/111830539</guid><author>LGDmar</author><pubDate>Mon, 28 Dec 2020 09:34:24 +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;title&gt;hello world&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
 ]]></description><category></category></item><item><title><![CDATA[docker 搭建mysql主从环境]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/109810789</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/109810789</guid><author>LGDmar</author><pubDate>Thu, 19 Nov 2020 15:21:37 +0800</pubDate><description><![CDATA[废话不多说，什么是主从之类的自己上网查。我就不多说了，相信来看这边文章的大多数都知道的吧。

环境搭建要求:

用docker搭建mysql主从，必须得先安装docker。再而得熟悉docker的一些常用命令。

我这里搭建的环境是mysql5.7+docker

1.安装docker

因为官网打开太慢所以赋上菜鸟教程地址

https://www.runoob.com/docker/centos-docker-install.html

2.下载mysql5.7镜像


docker pull mysq]]></description><category></category></item><item><title><![CDATA[Redis 搭建主从集群服务]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/109644015</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/109644015</guid><author>LGDmar</author><pubDate>Fri, 13 Nov 2020 14:19:48 +0800</pubDate><description><![CDATA[Windows 搭建redis主从

1.下载redis，安装

2.打开redis安装文件夹,新建从服务目录



3.将redis-windows.conf 文件和 redis-server.exe 复制存放到三个从服务目录中



4.修改从服务目录中的redis.windows.conf配置文件，每个从服务都得配置

配置从服务redis端口号



配置主服务器地址



5.到这里一主三从redis服务就创建好了,下面创建哨兵(哨兵的作用是如果主redis服务宕机了则从从服务中选一个做为主的服务]]></description><category></category></item><item><title><![CDATA[koa2 项目构建 安装使用]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/109076472</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/109076472</guid><author>LGDmar</author><pubDate>Wed, 14 Oct 2020 16:22:48 +0800</pubDate><description><![CDATA[koa2 是什么？

一个简约、扩展性强，基于Node.js平台的web开发框架。

安装

安装之前得先安装node 版本要大于node v7.6.0

想使用koa，我们肯定首先想到去官网看看，没准有个guide之类的能够轻松入门，可是koa官网跟koa本身一样简洁。

如果要我一点点搭建环境的话，感觉好麻烦，所以先去找了找有没有项目生成器，然后就发现了狼叔-桑世龙写的koa-generator。


#安装koa2脚手架
npm install -g koa-generator
#查看是否安装成功
k]]></description><category></category></item><item><title><![CDATA[tp5.1的门面模式]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/108621843</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/108621843</guid><author>LGDmar</author><pubDate>Wed, 16 Sep 2020 14:43:28 +0800</pubDate><description><![CDATA[门面（Facade）
门面为容器中的类提供了一个静态调用接口，相比于传统的静态方法调用， 带来了更好的可测试性和扩展性，你可以为任何的非静态类库定义一个facade类。
例：
1.定义一个Test类 --&gt; 有一个hello动态方


namespace app\common;
class Test
{
    public function hello($name)
    {
        return 'hello,' . $name;
    }
}

2.接下来，我们给这个类定义一个静态代]]></description><category></category></item><item><title><![CDATA[redis 之数据持久化]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/108440553</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/108440553</guid><author>LGDmar</author><pubDate>Thu, 10 Sep 2020 16:08:47 +0800</pubDate><description><![CDATA[redis持久化是什么 

redis 是基于内存的，当你的内存关闭后数据则消失了。但是有的需求是数据继续保留当你下一次连接打开的时候 数据还在。这里就可以使用redis的数据持久化，它是每隔多少时间把你的数据自动存储到你的磁盘里生成持久化文件。这样就能实现数据的保留(个人理解)


（redis5.0之前是单线程的，6.0版本是多线程的，redis服务端接收客户端发送的请求，会生成一个队列，一个一个进行处理）


redis实现数据持久化提供了两种方式:

RDB：指定的时间间隔内保存数据快照

AOF：]]></description><category></category></item><item><title><![CDATA[容器和依赖注入原理 (易懂)]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/108406918</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/108406918</guid><author>LGDmar</author><pubDate>Fri, 04 Sep 2020 16:30:48 +0800</pubDate><description><![CDATA[&lt;?php 
namespace app\index\controller;
 
/**
 * 容器与依赖注入原理:
 * ---------------------------------------------------------------
 * 任何URL访问,最终都会定位到一个控制器,由控制器中具体方法来完成
 * 一个控制器对应着一个类,如果对这些类进行统一管理呢?容器是一个好方案
 * 容器: 除了类管理工具,还可用于将类的实例(实例是啥  对象啊)做为参数,传递给类方法时,触发对.]]></description><category></category></item><item><title><![CDATA[vue 3.0文档]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/108293900</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/108293900</guid><author>LGDmar</author><pubDate>Sat, 29 Aug 2020 13:58:48 +0800</pubDate><description><![CDATA[https://juejin.im/post/6858558735695937544#heading-150
]]></description><category></category></item><item><title><![CDATA[uniapp 之版本检测自动更新机制]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/108291427</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/108291427</guid><author>LGDmar</author><pubDate>Sat, 29 Aug 2020 11:02:39 +0800</pubDate><description><![CDATA[在做APP时需要用到自动更新升级机制，当版本更新了则提示用户升级下载更新。

下面是我实现的逻辑

版本更新后端数据库存入版本号，APP访问时获取当前版本和后端接口返回版本号是否一致。如一致则是最新版本，如不一致则提示用户更新下载新的版本。

1.编写后台接口检测版本（为了方便测试和理解 我这里使用的是原生php的代码）

创建index.php文件，编写如下代码


&lt;?php

header("Access-Control-Allow-Origin: *");// 允许所有地址跨域请求

clas]]></description><category></category></item><item><title><![CDATA[uniapp 之检测用户是否已经安装APP]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/108291096</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/108291096</guid><author>LGDmar</author><pubDate>Sat, 29 Aug 2020 10:24:48 +0800</pubDate><description><![CDATA[有时候需要APP需要分享H5链接给用户，用户点击链接检测当前用户是否已经安装APP，如果安装了则打开指定页面。没有安装则跳转下载链接。实现这个需求需要在APP打包上线时设置好 scheme 本地协议，然后访问H5页面时检测本地协议（其实就是在app中将http协议转换为本地协议）

android

第一步 打开uniapp配置文件manifest.json -&gt; 源码视图

把"schemes": ["hulian"]添加到"app-plus"-&gt;"distribute"-&gt;"an...]]></description><category></category></item><item><title><![CDATA[TP6 安装和多应用模式部署]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/108018426</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/108018426</guid><author>LGDmar</author><pubDate>Sat, 15 Aug 2020 15:19:23 +0800</pubDate><description><![CDATA[安装前准备：



附上composer下载地址:https://getcomposer.org/Composer-Setup.exe

安装TP6



TP6提供了两种版本安装方式，这里我们选择稳定版本进行安装


composer create-project topthink/think chat

安装完成后，cd到chat目录下执行


php think run

这里执行成功后 直接访问http://localhost:8000 就可以访问成功了

如果访问失败，可能是端口被占用了 这里可以]]></description><category></category></item><item><title><![CDATA[通过 await 和 async 语法糖将异步代码变成同步]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/107830641</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/107830641</guid><author>LGDmar</author><pubDate>Thu, 06 Aug 2020 09:38:35 +0800</pubDate><description><![CDATA[Promise 与 await-async，await-async是ES7推出的Promise语法糖，基础Promise之上

下面我们看一段代码是await-async实现的异步阻塞同步执行



function readSync(isTrue) {
    return new Promise((resolve, reject) =&gt; {
        setTimeout(function(){
          if(isTrue){
            resolve('成功!')]]></description><category></category></item><item><title><![CDATA[node.js介绍和安装教程]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/107604214</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/107604214</guid><author>LGDmar</author><pubDate>Wed, 29 Jul 2020 10:57:22 +0800</pubDate><description><![CDATA[node.js是什么

node.js构建于Chrome V8引擎之上

Chrome V8引擎是世界上目前公认解析执行javasript代码最快的

node.js不是库、不是框架、不是一门语言，是一个javascript运行时环境，简单来说node.js能够解析和执行javascript代码。

if在很早之前javascript只能依赖于浏览器来执行，然后有了node.js的出现使javascript可以完全的脱离浏览器来运行，一切都归功于：node.js

node.js中不存在BOM和DOM，只.]]></description><category></category></item><item><title><![CDATA[React安装使用]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/106860305</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/106860305</guid><author>LGDmar</author><pubDate>Fri, 19 Jun 2020 17:31:33 +0800</pubDate><description><![CDATA[react是什么?

react是Facebook开发出的一款JS库

react特点:

react 不适用模板
	react 不是一个MVC框架
	react 响应式(数据更新的时候非常简单)
	reacr 是一个轻量级的js库
react原理:

虚拟Dom react当中把dom抽象成一个js对象，通过这个js对象实时更新真实的Dom，操作虚拟Dom的速度远远大于操作真实Dom，这样就提升了我们操作Dom的性能
	diff算法 当页面数据发生变化 先更新虚拟Dom 而不去更新真实Dom 跟新js对象]]></description><category></category></item><item><title><![CDATA[docker精髓之DockerFile]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/106647542</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/106647542</guid><author>LGDmar</author><pubDate>Tue, 09 Jun 2020 18:22:04 +0800</pubDate><description><![CDATA[dockerfile是什么？

dockerfile是用来构建docker镜像的文件!命令参数脚本！

构建步骤：

编写一个dockerfile文件
	docker build 构建成为一个镜像
	docker run 运行镜像
	docker push 发布镜像(docker Hub、阿里云仓库)
查看一下官方是怎么做的?





很多官方的镜像都是基础包，我们需要的镜像可能需要有linux + nginx + mysql + php环境 ，很多功能没有。所以我们通常会自己搭建自己的镜像。

官方既然]]></description><category></category></item><item><title><![CDATA[docker精髓之容器卷]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/106643202</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/106643202</guid><author>LGDmar</author><pubDate>Tue, 09 Jun 2020 15:25:50 +0800</pubDate><description><![CDATA[容器数据卷

如果数据都再容器中，那么我们容器删除，数据就会丢失！ 需求:数据可以持久化

MySQL 容器删除了，删库跑路了！需求:MySQL数据可以存储在本地！

容器之间可以有一个数据共享的技术！Docker容器中产生的数据，同步到本地！

这就是卷技术！目录的挂载，将我们容器内的目录挂载到linux上面!



从上面这张图可以看出 容器mysql 内的/usr/mysql 目录是可以挂载到 linux的/home/mysql 目录实现两个目录数据同步

总结: 容器持久化和同步操作! 容器间也是.]]></description><category></category></item><item><title><![CDATA[Docker常用命令 ---学习笔记]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/106584718</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/106584718</guid><author>LGDmar</author><pubDate>Sat, 06 Jun 2020 14:23:55 +0800</pubDate><description><![CDATA[如果数据都再容器中，那么我们容器删除，数据就会丢失！ 需求:数据可以持久化

MySQL 容器删除了，删库跑路了！需求:MySQL数据可以存储在本地！

容器之间可以有一个数据共享的技术！Docker容器中产生的数据，同步到本地！

这就是卷技术！目录的挂载，将我们容器内的数据]]></description><category></category></item><item><title><![CDATA[webpack安装使用 4.x]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/106566100</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/106566100</guid><author>LGDmar</author><pubDate>Fri, 05 Jun 2020 15:26:55 +0800</pubDate><description><![CDATA[众所周知webpack是一款打包项目的打包工具

本质上，webpack是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时，它会递归地构建一个依赖关系图(dependency graph)，其中包含应用程序需要的每个模块，然后将所有这些模块打包成一个或多个bundle。

安装webpack之前请确保你已安装了node.js

如果没有安装请点击下载安装:官网下载安装地址

webpack四个核心概念：

入口entry
	出口..]]></description><category></category></item><item><title><![CDATA[PHP 基础之掌握位运算符]]></title><link>https://blog.youkuaiyun.com/LGDmar/article/details/106551777</link><guid>https://blog.youkuaiyun.com/LGDmar/article/details/106551777</guid><author>LGDmar</author><pubDate>Thu, 04 Jun 2020 17:58:46 +0800</pubDate><description><![CDATA[位运算符是变量值转换成二进制进行比较

1. &amp;按位与(And) $a&amp; $b


//二者都为 1 时为 1 ，否则为 0。即把 $a 和 $b 中都为 1 的位设为 1 ，否则设为 0
$a = 2; //00000010
$b = 1; //00000001
$c = 3; //00000011
var_dump($a &amp; $b); //false
var_dump($b &amp; $c); //true

2. ^按位异或(Xor) $a ^$b


...]]></description><category></category></item></channel></rss>