<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_41870566的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_41870566</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_41870566]]></copyright><item><title><![CDATA[vue引用videojs播放器]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/106473905</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/106473905</guid><author>qq_41870566</author><pubDate>Mon, 01 Jun 2020 16:08:06 +0800</pubDate><description><![CDATA[由于用组件默认没有配置多语言，需要自己添加多语言。不多说，上代码。


1、安装 npm i videojs -S

2、引用


import videojs from 'video.js'
import 'video.js/dist/video-js.css'
import "./video.youtube.css"
import videoZHCN from 'video.js/dist/lang/zh-CN.json'
import videoENUS from 'video.js/dist...]]></description><category></category></item><item><title><![CDATA[es6语音播报]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/106473367</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/106473367</guid><author>qq_41870566</author><pubDate>Mon, 01 Jun 2020 15:31:58 +0800</pubDate><description><![CDATA[基于es6的语音播报方法



const synth = window.speechSynthesis;
const msg = new SpeechSynthesisUtterance();

// 语音播报的函数
handleSpeak(text){
      msg.text = text;
      msg.lang = 'zh-CN';
      msg.volume = '1';
      msg.rate = 1;
      msg.pitch = 1;
      synth..]]></description><category></category></item><item><title><![CDATA[兼容edge、ie导出文件]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/106214830</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/106214830</guid><author>qq_41870566</author><pubDate>Tue, 19 May 2020 15:01:02 +0800</pubDate><description><![CDATA[if (window.navigator &amp;&amp; window.navigator.msSaveOrOpenBlob) {
    navigator.msSaveBlob(blob, fileName)
  } else {
    const link = document.createElement('a')
    link.href = URL.createObjectURL(blob) // 创建URL
    link.download = fileName
    docum.]]></description><category></category></item><item><title><![CDATA[vue+axios下载excel文件]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/106139205</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/106139205</guid><author>qq_41870566</author><pubDate>Fri, 15 May 2020 12:16:25 +0800</pubDate><description><![CDATA[从接口获取文件流方式下载excel有两种，这里只展示blob方式，需要后台下载号文件，转换成文件流返回。

参考案例：https://segmentfault.com/a/1190000020540788

文件后缀：MIME（W3CSchool）



axios({
    url: '',
    method: '',
    responseType: 'arraybuffer',
    data
  }).then(res =&gt; {
          // application/v.]]></description><category></category></item><item><title><![CDATA[vue图片插件v-viewer]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/106112365</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/106112365</guid><author>qq_41870566</author><pubDate>Thu, 14 May 2020 09:18:28 +0800</pubDate><description><![CDATA[图片可以左侧缩放、旋转等动画的插件。

参考网站：https://github.com/mirari/v-viewer

参考博文：https://www.jianshu.com/p/84042c7b1b5b


安装

npm i v-viewer -S

引入


// vue中main.js里面全局引入
import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
Vue.use(Viewer)
Viewer.setDefault...]]></description><category></category></item><item><title><![CDATA[git命令使用记录]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105823882</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105823882</guid><author>qq_41870566</author><pubDate>Tue, 28 Apr 2020 21:33:03 +0800</pubDate><description><![CDATA[git命令记录


克隆一个新项目：git clone 项目地址
	添加一个文件：git add 文件名称
	提交已经添加的文件：git commit -m '备注信息'
	推送到git上面：git push
	同步项目上的代码：git pull
...]]></description><category></category></item><item><title><![CDATA[vue-router Uncaught (in promise) 报错问题]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105730844</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105730844</guid><author>qq_41870566</author><pubDate>Fri, 24 Apr 2020 15:04:17 +0800</pubDate><description><![CDATA[在vue项目中，每次登录都会出现一个Uncaught (in promise)错误，前边看着没啥大问题也是在项目初期搭建项目，就没管它，现在项目框架搭建好了，对这个bug已经忍到极限，可以动手怼它了。今天看到一篇文章上边写到这个bug是在vue-router版本3.1.0及以上之后才会出现的.




这是因为在vue-router更新到3.1.0版本之后，push和replace会返回一个p...]]></description><category></category></item><item><title><![CDATA[css文本自动换行及相关]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105724726</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105724726</guid><author>qq_41870566</author><pubDate>Fri, 24 Apr 2020 10:47:02 +0800</pubDate><description><![CDATA[// 自动换行，超出部分显示省略号
p {
    word-wrap: break-word; // 自动换行
    word-break: break-all; // 英文强制自动换行
    overflow: hidden;
    text-overflow: ellipsis; // 超出部分显示省略号
}
// 不换行
p {
    white-space: nowrap; /...]]></description><category></category></item><item><title><![CDATA[vue中注册事件注意事项]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105711793</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105711793</guid><author>qq_41870566</author><pubDate>Thu, 23 Apr 2020 17:00:39 +0800</pubDate><description><![CDATA[在vue组件中注册事件，添加事件是必须的。但是在一些ui框架中单纯的注册事件是不起作用的，要添加一些修饰符才能出现正常效果。


iview（view-design）ui
	
// 栅格组件 在栅格组件中是没有内置事件的，要添加点击事件或双击事件需要添加.native修饰符
&lt;Row&gt;&lt;i-col @click.native="clickName"&gt;&lt;/i-col&...]]></description><category></category></item><item><title><![CDATA[vue-cli4 + view-design(iview)]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105702373</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105702373</guid><author>qq_41870566</author><pubDate>Thu, 23 Apr 2020 11:10:58 +0800</pubDate><description><![CDATA[因为项目要求用到定制主题，所以依照官方文档开始配置文件。在配置过程中遇到点问题。变量覆盖的方式可以成功配置颜色，用工具安装的方式没有成功，不知道是不是用脚手架搭建项目后与这种方式有冲突。本次配置是变量覆盖方式配置。


在全局样式文件里引用依赖包里的index.less样式文件，之后在main.js文件里引用你的全局样式文件。这种方式需要在vue.config.js配置文件里添加css样式配置...]]></description><category></category></item><item><title><![CDATA[cnpm使用]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105668825</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105668825</guid><author>qq_41870566</author><pubDate>Tue, 21 Apr 2020 22:01:22 +0800</pubDate><description><![CDATA[有了npm，为什么还要使用cnpm呢？

因为npm内的资源都是在国外网站，每次加载资源要慢了很多。cnpm是阿里巴巴的在国内的镜像网站，是已经下载好了的npm资源，用cnpm下载资源就快了很多。当然，用ionic项目除外，用cnpm下载ionic项目有bug。


先安装node.js，里面自带npm。去官网下载最新的node.js安装包，按照提示安装。
	cnpm的安装
	
// 全局安装，...]]></description><category></category></item><item><title><![CDATA[localStorage与sessionStorage]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105656431</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105656431</guid><author>qq_41870566</author><pubDate>Tue, 21 Apr 2020 13:50:43 +0800</pubDate><description><![CDATA[localStorage：如果你不手动清除缓存，会永久存在
	sessionStorage：只要关闭当前窗口，缓存数据就会清除


清除方法


&lt;script&gt;
    1、localStorage.setItem(key, value) //存储数据
    2、localStorage.getItem(key) //读取数据
    3、localStorage.remove...]]></description><category></category></item><item><title><![CDATA[node.js升级]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105613590</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105613590</guid><author>qq_41870566</author><pubDate>Sun, 19 Apr 2020 12:55:51 +0800</pubDate><description><![CDATA[##1、去官网下载想要的版本，覆盖安装

##2、先卸载原来的版本，去官网下载想要的版本，安装
]]></description><category></category></item><item><title><![CDATA[vue+axios展示二进制文件流图片]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105527437</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105527437</guid><author>qq_41870566</author><pubDate>Wed, 15 Apr 2020 09:15:19 +0800</pubDate><description><![CDATA[1、请求方式


axios({ url: '请求地址', responseType: 'arraybuffer', method: 'get/post', params: { ...data } })


2、展示方式


两种展示方式任意选择

1、const url = URL.createObjectURL(new Blob([res]))

2、const url = `data:i...]]></description><category></category></item><item><title><![CDATA[数组字符串去重方法]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105454992</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105454992</guid><author>qq_41870566</author><pubDate>Sat, 11 Apr 2020 16:41:52 +0800</pubDate><description><![CDATA[es6写法

let arr = ['zhangsan', 'zhangsan', 'wnagwu'];

console.log(Array.form(new Set(arr))); // 获得新数组['zhangsan', 'wnagwu']

]]></description><category></category></item><item><title><![CDATA[常用正则表达式符号]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105452846</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105452846</guid><author>qq_41870566</author><pubDate>Sat, 11 Apr 2020 15:13:45 +0800</pubDate><description><![CDATA[^：匹配输入字符串的开始位置。
	$：匹配输入字符串的结束位置。
	\：转义字符，经常用来匹配有特殊含义的字符。
	{n}：n 是一个非负整数。匹配确定的 n 次。例如，'o{2}' 不能匹配 "Bob" 中的 'o'，但是能匹配 "food" 中的两个 o。
	{n,m}：m和n为非负整数，n&lt;=m。最小匹配n次，最大匹配m次。请注意在逗号和两个数之间不能有空格。例如，"o{1,3}" ...]]></description><category></category></item><item><title><![CDATA[正则表达式验证手机号码]]></title><link>https://blog.youkuaiyun.com/qq_41870566/article/details/105451589</link><guid>https://blog.youkuaiyun.com/qq_41870566/article/details/105451589</guid><author>qq_41870566</author><pubDate>Sat, 11 Apr 2020 14:52:59 +0800</pubDate><description><![CDATA[1、国内手机号验证表达式


constres = /^1[3456789]\d{9}$/;

if (res.test('要验证的手机号')) alert('验证通过')

else alert('验证失败')


2、国内固话验证表达式（待定）


const res = /^0\d{2,3}-\d{7,8}$/;

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