Vue.js

markdown-it-vue 一个 Markdown 的 Vue 组件库

杀马特。学长 韩版系。学妹 提交于 2021-02-13 18:20:48
项目地址: https://github.com/ravenq/markdown-it-vue Markdonw Vue 组件库. markdown-it-vue 是一个丰富的 markdown Vue 组件,markdown-it-vue 使用 markdown-it 作为 Markdown 数据解析引擎,整合多种 markdown-it 插件,并内置了一些自己的功能性插件,支持 GFM TOC、GFM style、emoji等通用特性,还支持 mermaid charts、Echarts、flowchart.js 等多种图表,支持 AsciiMath、Latex 等数学公式渲染,支持 errro | warning | info 个性化提示。 在线示例 http://www.aqcoder.com/markdown 安装 npm install markdown-it-vue 特性 Official markdown syntax. GFM TOC GFM style emoji mermaid charts Echarts Flowcharts.js Subscript/Superscript AsciiMath info | error | warning message tip 使用的插件 markdown-it markdown-it-emoji markdown-it

js 常用禁止

僤鯓⒐⒋嵵緔 提交于 2021-02-13 17:54:52
网上收集各类禁止 js网页防复制代码 禁止查看网页源文件代码屏蔽鼠标右键 有效 <body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onbeforecopy="return false" > 1、使右键和复制失效 方法1: 在网页中加入以下代码: 有效 <script language="Javascript"> document.oncontextmenu=new Function("event.returnValue=false"); document.onselectstart=new Function("event.returnValue=false"); </script> 方法2: 在 <body> 中加入以下代码 有效 <body oncontextmenu="return false" onselectstart="return false"> 或 <body oncontextmenu="event.returnValue=false" onselectstart="event.returnValue=false"> 实质上,方法2与方法1是一样的。 方法3: 如果只限制复制,可以在 <body> 加入以下代码: 有效 <body

基于Vue + axios + WebApi + NPOI导出Excel文件

不羁的心 提交于 2021-02-13 17:47:22
一、前言 项目中前端采用的Element UI 框架, 远程数据请求,使用的是axios,后端接口框架采用的asp.net webapi,数据导出成Excel采用NPOI组件。其业务场景,主要是列表页(如会员信息,订单信息等)表格数据导出,如表格数据进行了条件筛选,则需要将条件传至后端api,筛选数据后,导出成Excel。 思考过前端导出的3种方案: 1.使用location.href 打开接口地址.缺点: 不能传token至后端api, 无法保证接口的安全性校验,并且接口只能是get方式请求. 2.采用axios请求接口,先在筛选后的数据服务端生成文件并保存,然后返回远程文件地址,再采用 location.href打开文件地址进行下载. 缺点: 实现复杂,并且每次导出会在服务端生成文件,但是又没有合适的时机再次触发删除文件,会在服务端形成垃圾数据。优点:每次导出都可以有记录。 3. 采用axios请求接口,服务端api返回文件流,前端接收到文件流后,采用blob对象存储,并创建成url, 使用a标签下载. 优点:前端可传token参数校验接口安全性,并支持get或post两种方式。 因其应用场景是导出Excel文件之前,必须筛选数据,并需要对接口安全进行校验,所以第3种方案为最佳选择。在百度之后,发现目前使用最多的也是第3种方案。 二、Vue + axios 前端处理 1

Vue项目接入MQTT

喜欢而已 提交于 2021-02-13 17:45:55
Vue项目接入MQTT 安装mqtt库 npm install mqtt --save Vue代码实现 <template> <div id="app"> <p>mqtt收到的数据:</p> <p>{{this.msg}}</p> </div> </template> <script> import mqtt from 'mqtt' var client const options = { connectTimeout: 40000, clientId: 'mqtitId-Home', username: 'admin', password: 'admin123', clean: true } client = mqtt.connect('ws://172.80.5.222:8083/mqtt', options) export default { data() { return { msg: '--' } }, created() { this.mqttMsg() }, methods: { mqttMsg() { client.on('connect', (e) => { console.log("连接成功!!!") client.subscribe('/wjw1014', { qos: 0 }, (error) => { if (!error) { console.log(

vue项目接入markdown

孤者浪人 提交于 2021-02-13 17:21:20
vue 项目接入 markdown 最近做一个项目,需要在vue项目中接入 markdown 编辑器,其实这个好接,他没有什么特别的样式,男的就是图片的上传。 今天给大家推荐一个插件 :mavonEditor 这个是他的github: https://github.com/hinesboy/mavonEditor/blob/master/README.md 这个插件支持自定义界面,代码高亮,图片上传等,是我见过最好的一个。 他的使用方法在github上写的很详细,可以去里面看。 安装 安装命令 $ npm install mavon-editor --save 或者 $ yarn add mavon-editor 在 main.js 中引入 import mavonEditor from 'mavon-editor' import 'mavon-editor/dist/css/index.css' Vue.use(mavonEditor) 使用mavonEditor编辑markdown 在需要引入markdown编辑器的界面 <template> <div> <mavon-editor v-model="value"/> </div> </template> <script> export default { data() { return { value: '',

具有完整讲解文档的7个Java开源项目,值得一学!

a 夏天 提交于 2021-02-13 17:17:40
最近看了一个开源项目RuoYi-Vue,感觉挺不错的 所以,你学到了啥? emmm,学会了前后端分离,多数据源运用?好像没其它了… 嗐,这么好的一个开源项目你就学了这点东西? 你有啥好建议呀,怎么学习开源项目? 我给你几个主流项目笔记,是一个大神整理和分享的,你可以参考学习,提高效率! 项目一: cloud-platform 学习重点: 服务鉴权中心 用户间鉴权 服务之间鉴权 springcloud组件大回顾 图文笔记: 视频讲解: 项目二: Guns 学习重点: map+warpper模式 Api数据传输安全 数据范围限定 多数据源、jwt 图文笔记: 视频链接: 项目三: bootshiro 学习重点: restful接口设计 前后端分离 数据传输动态秘钥加密 jwt过期自动刷新 图文讲解: 项目四: vueblog 学习重点: 如何搭建一个脚手架 前后端分离如何对接 如何开发Vue+element-ui项目 从0到1开发一个项目的完整教程 图文讲解: 视频讲解: 项目五: renren-fast 学习重点: 项目技术框架分析 前后端分离-token机制 安全防范模块--预防xss攻击与sql注入 多数据源的使用分析总结 如何Docker部署项目 图文文档目录: 项目六: miaosha 学习重点: 秒杀系统场景特点与设计要点分析 高并发优化方向 秒杀限流处理

vue性能优化

只愿长相守 提交于 2021-02-13 08:34:42
其实性能优化呢是个非常大的话题,只是自己在工作中确实会碰到一下,页面加载慢呢,一部分是逻辑问题,一部分是网络问题,还有就是确实数据太多,dom元素太多了。 1,在网上搜索vue长列表渲染,推荐的方案有Object.freeze() ,后来呢,看到黄轶大神的解答,就是说可以把那些只用于展示的,并且比较长的列表数据,在crated钩子中绑定到this身上,不一定需要写在data里面, 2,在被复用的组件中,通过eventbus发送的消息,需要在beforeDestory钩子中解绑,解绑的方法也比较简单,看例子: <script> methods:{ test(){ this .EventBus.$emit('refresh' ); } } beforeDestory(){ this .EventBus.$off('refresh'); // 取消对这个事件的监听 } </script> 如果不取消,那么这个组件被激活几次,那么事件监听中的回调函数就会执行几次,比如,A,B页面都使用了这个组件,在A,B组件之前切换时,组件中监听的事件会累加,严重影响页面性能,所以这里的取消监听是非常有必要的   当实践到好的方法的时候在过来添加,上面的方法还需要实际验证一下。后面继续补充吧 来源: oschina 链接: https://my.oschina.net/u/4410805/blog

VUE路由原理

两盒软妹~` 提交于 2021-02-13 05:32:19
1: hash 2: history 区别: 前者地址栏会带有#,后者没有,显得美观一点 路由原理:前段路由实现本质是监听URL的变化,然后匹配路由规则显示相应页面,并且无须刷新。 hash模式: a: 点击或浏览器历史跳转时,触发onhashchange事件,然后根据路由规则匹配显示相应页面(遍历路由表,装载相应组件到router-link); b: 手动刷新时,不会像服务器发送请求(不会触发onhashchange),触发onload事件,然后根据路由规则匹配显示相应页面; history模式: a:跳转时会调用history.pushState方法,根据to属性改变地址,并切换相应组件到router-link; b:浏览器历史操作(前进,后退),只会改变地址栏(页面内容不会变),不会切换组件,需要使用popstate方法来切换组件; c: 手动刷新,需要后端配合重定向,不然404 来源: oschina 链接: https://my.oschina.net/u/4364580/blog/3337693

vue路由的实现原理

元气小坏坏 提交于 2021-02-13 04:58:50
写在前面:通常 SPA 中前端路由有2种实现方式: window.history location.hash 下面就来介绍下这两种方式具体怎么实现的 一.history 1.history基本介绍 window.history 对象包含浏览器的历史,window.history 对象在编写时可不使用 window 这个前缀。history是实现SPA前端路由是一种主流方法,它有几个原始方法: history.back() - 与在浏览器点击后退按钮相同 history.forward() - 与在浏览器中点击按钮向前相同 history.go(n) - 接受一个整数作为参数,移动到该整数指定的页面,比如go(1)相当于forward(),go(-1)相当于back(),go(0)相当于刷新当前页面 如果移动的位置超出了访问历史的边界,以上三个方法并不报错,而是静默失败 在HTML5,history对象提出了 pushState() 方法和 replaceState() 方法,这两个方法可以用来向历史栈中添加数据,就好像 url 变化了一样(过去只有 url 变化历史栈才会变化),这样就可以很好的模拟浏览历史和前进后退了,现在的前端路由也是基于这个原理实现的。 2.history.pushState pushState(stateObj, title, url)

小程序开发笔记【四】,集成高德地图进行逆地址解析

社会主义新天地 提交于 2021-02-13 00:38:05
微信小程序获取及选择位置 获取当前的地理位置、速度 wx.getLocation({ type: "wgs84", //wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标 gcj02在android机上有bug,无法选择位置 success(res) { } }); 打开地图选择位置 wx.chooseLocation({ success(res) { let name = res.name; //名称 let address = res.address; //详细地址 let longitude = res.longitude;//经度 let latitude = res.latitude;//纬度 fail: function(info){ //失败回调 console.log(info) } }) } }); 使用微信内置地图查看位置 openLocation(item){ let longitude = item.longitude; let latitude = item.latitude; wx.openLocation({ latitude, longitude, scale: 18 }); }, 逆地址解析(根据经纬度坐标获取城市省份信息) 微信小程序位置api并没有提供获取省份城市的信息