
vue
真前端
这个作者很懒,什么都没留下…
展开
-
pdfjs-dist插件渲染出来pdf文件不兼容iphone6、iphone8等问题
pdfjs-dist有时候会出现部分手机比如iphone6和iphone8渲染不出pdf问题解决办法:将pdfjs-dist版本降到2.2.228原创 2021-11-16 10:07:50 · 3608 阅读 · 2 评论 -
vuex不同模块module之前相互调用actions、mutations 、state
state子模块拿到父模块或其他模块的state、gettersconst { commit, dispatch, state, rootState,rootGetters } = storeconsole.log(rootState) // 打印根 stateconsole.log(rootState.list) // 打印其他模块的 stateconsole.log(rootGetters['list/ceshi']) // 打印其他模块的 getters子模块拿到父模块或其他模块的mut原创 2021-10-20 17:45:49 · 1584 阅读 · 0 评论 -
vue中pdf在线预览-全页预览
1.安装vue-pdfnpm install --save vue-pdf2.引入vue-pdfimport pdf from "vue-pdf";//注册组件components: { pdf,}// 使用<div class="content" ref="content"> <pdf ref="pdf" v-for="i in numPages" :key="i" :src="url" :page="i" ></pdf原创 2021-10-11 17:53:03 · 1003 阅读 · 1 评论 -
vue中使用svg图片,支持变色
安装插件npm install vue2-svg-icon --save-dev在vue.config.js文件中增加配置chainWebpack: (config) => { const svgRule = config.module.rule('svg') svgRule.uses.clear() svgRule.use('svg-sprite-loader').loader('svg-sprite-loader') .原创 2021-10-08 16:13:51 · 1185 阅读 · 0 评论 -
移动端实现页面滑动,顶部栏渐进变透明或变颜色
1.先监听页面滚动created() { window.addEventListener("scroll", this.handleScroll);},destroyed() { window.removeEventListener("scroll", this.handleScroll, true);},2.handleScroll方法```bashhandleScroll() { let scrollTop = window.pageYOffset |原创 2021-10-08 15:59:22 · 1060 阅读 · 0 评论 -
vue3+ts 实现防抖功能
使用自定义 ref 实现带防抖功能的 v-modelimport { customRef } from 'vue'export function useDebouncedRef<T>(value: T, delay = 200) { let timeout: any = null return customRef((track, trigger) => { return { get() { track() return val原创 2021-09-23 13:44:37 · 1843 阅读 · 0 评论 -
获取字符长度函数
const getStrFullLength = (str = '') =>{ str.split('').reduce((pre,cur)=>{ const charCode = cur.charCodeAt(0); if(charCode > 0 && charCode <=128){ return pre +1 } return pre +2 },0)}原创 2021-09-05 10:00:13 · 214 阅读 · 0 评论 -
js复制文本
function copyText(test: string) { if (document !== null) { const tag = document.createElement('input') tag.setAttribute('id', 'copyInput') tag.value = test document.getElementsByTagName('body')[0].appendChild(tag) const target: any =原创 2021-09-23 13:19:25 · 119 阅读 · 0 评论 -
小项目怎么代替vuex
1.新建store.js文件,写入import Vue from 'vue'const state = Vue.observable({ user: {}, productId: '',})const store = { state: state, dispatch: function (method, ...args) { return this.methods[method].apply(this, [...args]) }, me原创 2021-09-23 09:57:47 · 192 阅读 · 0 评论 -
vue 下载文件方法
const downLoadFile = function (blob, fileName, that, msg = ''){ if(blob.type === 'jsonString') { let reader = new FileReader(); reader.readAsText(blob.data, 'utf-8'); let resJson = {}; reader.onload = e =>{原创 2021-09-05 09:43:04 · 2345 阅读 · 0 评论 -
vue3+ts 无法启用Vue-devtools解决方案
1.在main.ts文件中加入const win: any = windowif (process.env.NODE_ENV === 'development') { if ('__VUE_DEVTOOLS_GLOBAL_HOOK__' in win) { win.__VUE_DEVTOOLS_GLOBAL_HOOK__.Vue = app }}2.改动了main.ts别忘记重启下项目 npm run serve...原创 2021-09-03 10:38:59 · 836 阅读 · 0 评论 -
vue开发必备神器:vue-devtools
vue-devtools 安装到github下载git clone https://github.com/vuejs/vue-devtools2.使用步骤a.在vue-devtools目录下安装依赖包cd vue-devtoolsnpm installnpm run build编译打包成功后会在shells下生成chrome文件夹。此文件夹就是用来放入chrome的扩展程序b.打开Chrome浏览器 >选择更多工具>扩展程序 >打开开发者模式3.vue-原创 2021-05-29 10:17:51 · 446 阅读 · 0 评论 -
Vue 数组/对象赋值,视图不更新问题
当这样操作数组和对象,会发现数据虽然改变了,但是视图就是不刷新this.arr[0] = 'newValue';this.obj.attr = 'newValue';解决办法:改变数组this.$set(this.arr, 0, "newValue");或使用splice()、 push()、pop()、shift()、unshift()、sort()、reverse()改变对象this.$set(this.obj, "c", "newValue");或使用this.obj= Ob原创 2021-05-29 10:01:50 · 1665 阅读 · 0 评论 -
vue简化技巧之‘hook:生命周期‘
常用案例mounted () { window.addEventListener('resize', this.resizeHandler);},beforeDestroy () { window.removeEventListener('resize', this.resizeHandler);}简化后mounted () { window.addEventListener('resize', this.resizeHandler); this.$on("hook:b原创 2021-05-26 22:47:20 · 217 阅读 · 0 评论 -
vue优化技巧之Object.freeze()
场景: 一个纯展示页面,没有数据修改,但是vue会做getter和setter的转换Object.freeze()是ES5新增的特性,可以冻结一个对象,防止对象被修改注意:冻结只是冻结里面的单个属性,引用地址还是可以更改今日头条极速版邀请码【941363528】抖音极速版邀请码【8121029958】快手极速版邀请码【426942961】番茄听书邀请码 【453330438】番茄免费小说邀请码【7556736071】...原创 2021-05-23 13:04:05 · 231 阅读 · 0 评论 -
vue常用的事件修饰符
.stop:阻止冒泡.prevent:阻止默认行为.self:仅绑定元素自身触发.once: 2.1.4 新增,只触发一次.passive: 2.3.0 新增,滚动事件的默认行为 (即滚动行为) 将会立即触发,不能和.prevent 一起使用今日头条极速版邀请码【941363528】抖音极速版邀请码【8121029958】快手极速版邀请码【426942961】番茄听书邀请码 【453330438】番茄免费小说邀请码【7556736071】...原创 2021-05-23 12:58:24 · 77 阅读 · 0 评论 -
vue优化技巧之mixins
场景:有些组件有些重复的 js 逻辑,mixins 就可以实现这种混入案例:定义const mixin={created(){this.dealTime()},methods:{dealTime(){console.log(‘这是mixin的dealTime里面的方法’);}}}引入export default{mixins:[mixin]}今日头条极速版邀请码【941363528】抖音极速版邀请码【8121029958】快手极速版邀请码【426942961】番茄听书原创 2021-05-23 12:55:19 · 370 阅读 · 0 评论 -
watch 深度监听及立即执行
立即执行:利用 watch 的immediate和handler属性简写深度监听:deep 属性深度监听, 监听复杂数据类型案例:atch:{someValue:{handler(oldVal,newVal){},deep:true,immediate: true}}今日头条极速版邀请码【941363528】抖音极速版邀请码【8121029958】快手极速版邀请码【426942961】番茄听书邀请码 【453330438】番茄免费小说邀请码【7556736071】...原创 2021-05-23 12:50:54 · 1087 阅读 · 0 评论 -
vue同时导入多个组件方法
require.context(directory,useSubdirectories,regExp)接收三个参数:directory:说明需要检索的目录useSubdirectories:是否检索子目录regExp: 匹配文件的正则表达式,一般是文件名案例const path = require(‘path’)const files = require.context(’@/components/home’, false, /.vue$/)const modules = {}files.原创 2021-05-23 12:42:13 · 1230 阅读 · 0 评论 -
vue elementUi 和 Ant 后台模板
elementUi 后台模板https://github.com/PanJiaChen/vue-element-adminAnt 后台模板https://github.com/ant-design/ant-design-pro原创 2020-06-08 17:40:16 · 638 阅读 · 0 评论 -
vue 创建+初始化项目
1.安装nodehttps://nodejs.org/en/2.安装cnpm$ npm install -g cnpm --registry=https://registry.npm.taobao.org3.安装vue脚手架npm install -g @vue/cli4.创建projectname项目, 按需求选择vue-cli 用的是 npm 源,只要设置 npm:npm config set registry https://registry.npm.taobao.org(Bab原创 2020-06-08 00:03:25 · 397 阅读 · 0 评论 -
vue前端数据导出excel表格及后端数据导出excel方法
1.安装vue-json-excelnpm install vue-json-excel -S2.main.js里面引入并注册使用import JsonExcel from 'vue-json-excel'Vue.component('downloadExcel', JsonExcel)3、页面中使用<download-excel class = "export-excel-wrapper" :data = "json_data" :fields = "json转载 2020-06-01 00:24:25 · 3049 阅读 · 1 评论 -
vue后端返回数据流 前端导出下载xls文件
后端返回数据流, 前端导出下载xls文件export function exportMethod() {axios({method: get,url: url+‘params’,responseType: ‘blob’}).then((res) => {const link = document.createElement(‘a’)let blob = new Blob([res], {type: ‘application/vnd.ms-excel’})link.style.disp原创 2020-06-01 00:13:33 · 1458 阅读 · 0 评论 -
Apache设置反向代理解决跨域问题
1.打开Apache的这些模块,把签名的#去掉LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule proxy_ftp_module modules/mod_proxy_ftp.soLoadModule proxy_...原创 2020-04-28 14:56:43 · 1551 阅读 · 0 评论 -
vue打包到apache服务器刷新报错问题处理
原因是由于使用vue-router的 history 模式,这种模式充分利用 history.pushState API 来完成URL跳转而无须重新加载页面。 mode: 'history'解决方案在服务端增加一个覆盖所有情况的候选资源(如果 URL 匹配不到任何静态资源,则应该返回同一个 你 app 依赖的页面index.html):在项目目录下新建文件.htaccess文件,添加...原创 2020-04-28 14:39:48 · 505 阅读 · 0 评论 -
vue获取组件内部元素方法
由于组件在mounted中没有加载完全,需要延迟获取元素在mounted中this.$nextTick(()=>{这里再调用this.$refs.XX 或document.getElementById['XX']})原创 2020-01-09 09:02:15 · 3019 阅读 · 0 评论 -
vue动态路由及按钮及权限控制
后台返回权限数据格式:{menuId: "101",menuName: "账号管理",},{menuId: "101001",menuName: "系统账号",},{menuId: "1010010001",menuName: "新增",}1.新建unit.js文件,封装后台传递过来的数据,类似于:export function getUserAuth(data, m...原创 2020-01-07 10:36:30 · 801 阅读 · 0 评论 -
element ui tree的数据更新无效问题
直接给tree赋default-checked-keys的值是无效的.解决方法:this.$refs.tree.setCheckedKeys(data);原创 2019-12-30 18:31:26 · 740 阅读 · 0 评论 -
前端七牛云图片上传【完整版】
参考表存储区域地域简称上传域名华东z0服务器端上传:http(s)://up.qiniup.com客户端上传: http(s)://upload.qiniup.com华北z1服务器端上传:http(s)://up-z1.qiniup.com客户端上传:http(s)://upload-z1.qiniup.com华南z2服务器端上传:http(s)://...原创 2019-12-13 16:49:51 · 1034 阅读 · 0 评论 -
vue技巧
实现草稿保存类需求beforeRouteLeave (to, from, next) { if(用户已经输入信息){ //出现弹窗提醒保存草稿,或者自动后台为其保存 }else{ next(true);//用户离开 } }setInterval路由跳转继续运行并没有销毁:比如一些弹幕,走马灯文字,这类需要定时调用...原创 2019-12-13 09:40:17 · 128 阅读 · 0 评论 -
element ui 《el-switch》组件会影响数据返回
做vue项目引入了element ui 的el-switch组件的,发现在请求数据中,state在response中返回的是“0”,但是在res返回值中变成了数字1<el-switch v-model="scope.row.state" :active-value="0" :inactive-value="1" active-color="#409EFF" inactive-color="...原创 2019-12-12 15:19:26 · 564 阅读 · 0 评论 -
vue项目导入excel数据
1.安装xlsx,xlsx文档介绍:https://github.com/SheetJS/sheetjsnpm install xlsx2.在vue文件中引入import XLSX from 'xlsx'importExcel(file, fileList) { const types = file.name.split('.')[1]; const fileType = ['xls...原创 2019-12-07 15:45:28 · 151 阅读 · 0 评论 -
vue中引入高德地图-绘制路径
1.在index.html中引入一段amap的JS<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=js api 秘钥"></script>在vue文件中引入地图import AMap from 'AMap'1 驾驶路径绘制第一步:在index.ht...原创 2019-12-04 17:09:14 · 2686 阅读 · 0 评论 -
js递归遍历树形json数据
获得的数据{ "name":‘林1’, "createTime": "2018-03-16 11:33:00", "deptId": 100, "parentId": 0 }, { "name":‘林2’, "createTime": "2018-03-16 11:33:00", "deptId": 101, "...原创 2019-11-27 15:21:00 · 821 阅读 · 0 评论 -
vue 项目 跨域问题
方法一:后台配合添加允许跨域方法二: 谷歌浏览器全局配置 右键->快捷键方式->目标尾部添加--disable-web-security --user-data-dir=C:\MyChromeDevUserData方法三:使用代理(只本地有用,上传到服务器需要后端解决跨域问题)根目录新建vue.config.js//多域名跨域配置module.exports = ...原创 2019-11-20 22:50:07 · 255 阅读 · 0 评论 -
vue复制功能
安装vue-clipboard2 npm install --save vue-clipboard22.在main.js中引入import VueClipboard from 'vue-clipboard2'Vue.use(VueClipboard)3.使用方法<span>{{invitationCode}}</span><img src="...原创 2019-11-20 22:44:07 · 102 阅读 · 0 评论 -
vue项目常用插件的安装方法
axios安装 npm install axios安装element ui npm i element-ui -S安装qs npm install qs安装weixin-js-sdk npm install weixin-js-sdk原创 2019-11-14 14:11:01 · 374 阅读 · 0 评论 -
element ui 自定义验证不进入validate表单验证问题
错误代码:var notZero = (rule, value, callback) => { if (!value) { return callback(new Error('值必须是大于0')); }};这段代码中只有但value为假时候才执行,当为真的时候没有返回对于的执行函数callback(); 所有稍微改动下就可以了var notZero = (rule, va...原创 2019-11-14 13:20:17 · 2289 阅读 · 2 评论 -
vue用真机测试本地项目在ios9以下低版本手机显示空白问题
这问题花费我3天时间,一直不行最后把vue-cli4.0.4 升级到 4.0.5就可以了. 这问题在4.0.5版本已经解决,是vue-cli4问题原创 2019-11-09 13:54:43 · 490 阅读 · 0 评论 -
vue 报错 Object(...) is not a function
检查引入问题是否有问题import { login } from ‘@/api/login’比如{} 和 login是否存在或文字正确原创 2019-11-07 12:43:52 · 14484 阅读 · 0 评论