Vue 技巧】的更多相关文章

前言 最近关于Vue的技巧文章大热,我自己也写过一篇(vue开发中的"骚操作"),但这篇文章的技巧是能在Vue的文档中找到蛛丝马迹的,而有些文章说的技巧在Vue文档中根本找不到踪迹!这是为什么呢? 当我开始阅读源码的时候,我才发现,其实这些所谓的技巧就是对源码的理解而已. 下面我分享一下我的收获. 隐藏在源码中的技巧 我们知道,在使用Vue时,要使用new关键字进行调用,这就说明Vue是一个构造函数.所以源头就是定义Vue构造函数的地方! 在src/core/instance/inde…
1. 动态生成的input自动focus 背景: input元素在需要时才插入DOM,这时元素用autofocus属性第一次是可以获取焦点,但是如果有第二个,就不再生效,所以得另外的办法. 方法: //在input插入DOM后,这样才能focus到.setTimeout(function(){ inputElem.focus(); }, 0); //技巧 2. plupload插件引入时报“mOxie undefined” 背景: vue引入plupload插件(plupload.full.mi…
前言 大家好,这里是@IT·平头哥联盟,我是首席甩锅官——老金,今天给大家分享的,一些日常中神秘而又简单的vue的实用小技巧,以及我在我司项目中实用vue的总结和坑,跟大家一起分享,希望能给其他攻城狮带来些许便利,如有理解错误,请纠正. 技巧/坑点 1.setTimeout/ setInterval 场景一 :this指向改变无法用this访问vue实例 mounted(){ setTimeout( function () { //setInterval同理 console.log(this);…
转载:https://segmentfault.com/a/1190000014085613?utm_source=channel-hottest 对自己有用,做个笔记,有兴趣可以去以上地址去看. 第一招:化繁为简的Watchers 场景还原: created(){ this.fetchPostList(); }, watch: { searchInputValue(){ this.fetchPostList(); } } 组件创建时需要获取一次列表,同时数据更新需要重新重新渲染列表,immed…
1.在 v-html 中执行 vue 绑定的事件,默认是不能执行的.这里需要把 html 重新解析一下 loadMsg:function(html){ html = $.parseHTML(html)[0]; this.vm.$compile(html); while (this.el.firstChild) { this.el.removeChild(this.el.firstChild); } this.el.appendChild(html); }…
前言 最近一直在阅读Vue的源码,发现了几个实战中用得上的小技巧,下面跟大家分享一下. 同时也可以阅读我之前写的Vue文章 vue开发中的"骚操作" 挖掘隐藏在源码中的Vue技巧! 抽丝剥茧般的阅读源码,将$nextTick()拉下神坛! 隐藏在源码中的技巧 在实例化Vue时,首先调用的是Vue.prototype._init方法,而在此方法中mergeOptions()方法返回的options将运用在所有的初始化函数中.也就是如下代码: vm.$options = mergeOpti…
原文: Handling Errors in Vue.js 译者: Fundebug 本文采用意译,版权归原作者所有 去年一整年,我都在使用最爱的-Vue.js- 来做项目.最近突然意识到,我竟然从来没有认真去处理异常.我可以自恋地说:"我写的代码是完美的,没有BUG." 我相信大家都明白这是迷之自信.最近,我花了不少时间研究了Vue中处理异常的各种技巧,在此想把我学到的分享给大家. 错误大全 为了测试各种异常处理技巧,我故意触发三种类型的错误. 第一种:引用一个不能存在的变量: &l…
导读 这一次的口号是,带你重新认识vue,拯救1,2个前端开发者. 从2018年从事前端职业以来,呆过大小公司,干这一行都有2年多.代码写的多了,就越来越体会新手程序员都是挖坑的.在工作过程中,用一种方式去实现某个功能,等过了半年,大半年,自己成长起来了,哪天需求来了,回到该功能改代码.这是我自己的代码吗?当时是不是脑袋被门夹过,才想到用这个愚蠢的方法来实现,明明github上有一堆写好的功能或者ui框架上有类似的功能.用别人写好的比自己写的强多了,因为人家的经过多人参加编写实现,单元测试.三个…
vue传参方法一 1,路由配置 { path: '/describe/:id', name: 'Describe', component: Describe } 2,使用方法 // 直接调用$router.push 实现携带参数的跳转 this.$router.push({// 这个id是一个变量,随便是什么值都可以 path: /describe/${id}`, }) 3,获取方法(在describe页面) $route.params.id 使用以上方法可以拿到上个页面传过来的id值 vue传…
众所周知,我们写vue项目的时候都会创建很多个文件,尤其是一些中大型项目,会有很深的文件夹,当你去引入的时候,要写很长的路径比如我要引入一个css文件, 必须得 import  '../../../styles/iconfont.css' ,文件放的越深,路径就越长,所以我来说一个小技巧. 当我们刚开始创建好vue项目的时候看到一些文件引入的前面有一个@符号,这个符号的意义是什么呢? 我们打开build文件下的webpack.base.conf.js,用Ctrl+f搜索@,找到之后你会看到 '@…
前言: 在大概学完 vue 整体框架后,有幸接触到花裤衩大神写的 vue-elementUI-admin 模板框架,把这个模板框架当作 demo,跟着 code 一遍,最大的收获是在以逻辑简单的模板熟悉了一个项目的 code 流程,其中对页面的分割.组件间的通信.路由的设置.vuex和请求的结合以及 axios 的封装等都是收获颇丰. 在目前这个项目中,我又接触到了一些其他技巧,现此纪录. 一.父子组件的生命周期 1.加载渲染过程中: 父 beforeCreate -> 父 created ->…
转载:https://segmentfault.com/a/1190000014085613 第一招:化繁为简的Watchers 场景还原: created(){ this.fetchPostList() }, watch: { searchInputValue(){ this.fetchPostList() } } 组件创建的时候我们获取一次列表,同时监听input框,每当发生变化的时候重新获取一次筛选后的列表这个场景很常见,有没有办法优化一下呢? 招式解析:首先,在watchers中,可以直…
在vue的使用过程中会遇到各种场景,当普通使用时觉得没什么,但是或许优化一下可以更高效更优美的进行开发.下面有一些我在日常开发的时候用到的小技巧,在下将不定期更新~ 1.多图表resize事件去中心化 1.1 一般情况 有时候我们会遇到这样的场景,一个组件中有几个图表,在浏览器resize的时候我们希望图表也进行resize,因此我们会在父容器组件中写: mounted() { setTimeout(() => window.onresize = () => { this.$refs.char…
1. watch 与 computed 的巧妙结合 如上图,一个简单的列表页面. 你可能会这么做: created(){ this.fetchData() }, watch: { keyword(){ this.fetchData() } } 如果参数比较多,比如上图 关键字筛选, 区域筛选, 设备ID筛选, 分页数, 每页几条数据, 可能会是这样: data(){ return { keyword:'', region:'', deviceId:'', page:1 } }, methods:…
给 props 属性设置多个类型 这个技巧在开发组件的时候用的较多,为了更大的容错性考虑,同时代码也更加人性化: export default { props: { width: { type: [String, Number], default: '100px' } // 或者这样 // width: [String, Number] } } 比如一个 <my-button> 上暴露了一个 width 属性,我们既可以传 100px,也可以传 100 : <!-- my-button.…
前言 用Vue开发一个网页并不难,但是也经常会遇到一些问题,其实大部分的问题都在文档中有所提及,再不然我们通过谷歌也能成功搜索到问题的答案,为了帮助小伙伴们提前踩坑,在遇到问题的时候,心里大概有个谱知道该如何去解决问题.这篇文章是将自己知道的一些小技巧,结合查阅资料整理成的一篇文章,如果喜欢的话可以点波赞/关注,支持一下,希望大家看完本文可以有所收获. 文章内容总结: 组件style的scoped Vue 数组/对象更新 视图不更新 vue filters 过滤器的使用 列表渲染相关 深度wat…
在vue的使用过程中会遇到各种场景,当普通使用时觉得没什么,但是或许优化一下可以更高效更优美的进行开发.下面有一些我在日常开发的时候用到的小技巧,在下将不定期更新~ 1. 多图表resize事件去中心化 1.1 一般情况 有时候我们会遇到这样的场景,一个组件中有几个图表,在浏览器resize的时候我们希望图表也进行resize,因此我们会在父容器组件中写: mounted() { setTimeout(() => window.onresize = () => { this.$refs.cha…
官方里的我就不细说了,自个撸文档就成,下面是实践里常用的几个小技巧或者说是遇到的坑,若有错误望大家指正)1.当用a标签设置新窗口打开页面,设置url时,建议给href进行v-bind绑定,然后写相对路径即可,它默认会继续走router-link相对路由那一套,没必要在调用location的api获取hostname,然后拼接字符串.如图: 2.组件和route使用$router.params.xx耦合度太高,可尝试使用props解耦,操作如图: 3.解决实际应用场景下重定向问题: a.可以直接采…
说是小技巧 ,其实就是本人 就是一个小菜比 .如有大佬可以纠正,或者再救救我这个小菜比    跪谢 1.当后台返回一个字段需要根据不同字段内容在表格内显示相对应的文字(字段内容是死的,表格内需要显示对应文字 也是死的) 例如:后台返回一个status字段,0代表正在生成,1代表成功,2代表失败(当然可能不是数字,可能是文字什么的) 有两钟方法:像上面的的例子的话我们可以写成一个数组, 方法一:相对于下标 let statusList= ['正在生成','成功','失败'] 我获取了后台数据,并存…
Vue以前听说过,有了解过一点.当时还在热衷于原生JavaScript去写一些方法的封装,不是为啥,就感觉这样很帅,后面多多少少接触了一些JQuery的用法,到现在为止,JavaScript原生封装的一些方法,该忘的都忘了.上一家公司需要用到Vue,所以就利用下班的时候学习Vue.有次公司部门的培训,一位大佬总结的实用技巧,感觉不错,在这里记录下来,方便以后查询,也与大家分享. 阮一峰老师写的:http://es6.ruanyifeng.com/ 1.ES6新特性概览 2.Vue基础知识 3.V…
Vue 组件通讯 ——常见使用场景可以分为三类: 父子通信: 父向子传递数据是通过 props,子向父是通过 events($emit):通过父链 / 子链也可以通信($parent / $children):ref 也可以访问组件实例:provide / inject API:$attrs/$listeners 兄弟通信: Bus:Vuex 跨级通信: Bus:Vuex:provide / inject API.$attrs/$listeners 1.require.context() 1.场…
封装Vue组件的一些技巧 本文同步在个人博客shymean.com上,欢迎关注 写Vue有很长一段时间了,除了常规的业务开发之外,也应该思考和反思一下封装组件的正确方式.以弹窗组件为例,一种实现是在需要模板中引入需要弹窗展示的组件,然后通过一个flag变量来控制弹窗的组件,在业务代码里面会充斥着冗余的弹窗组件逻辑,十分不优雅. 本文整理了开发Vue组件的一些技巧,包含大量代码示例. 开发环境 vue-cli3提供了非常方便的功能,可以快速编写一些测试demo,是开发组件必备的环境.下面是安装使用…
1. 监听子组件的生命周期例如有父组件Parent和子组件Child,如果父组件监听到子组件挂载mounted就做一些逻辑处理,常规写法可能如下: // Parent.vue <Child @mounted="doSth" /> //Child.vue mounted(){ this.$emit('mounted'); } 这里提供一种简便的方法,子组件无需做任何处理,只需要在父组件引用子组件时使用@hook方法来监听即可,代码如下: // Parent.vue <C…
vue 作为目前前端三大框架之一,对于前端开发者可以说是必备技能.那么怎么系统地学习和掌握 vue 呢?为此,我做了简单的知识体系体系总结,不足之处请各位大佬多多包涵和指正,如果喜欢的可以点个小赞!本文主要讲述一些vue开发中的实用技巧. 相关推荐 总结vue 知识体系之基础入门篇 总结几个vue-router的使用技巧 搭建一个vue-cli的移动端H5开发模板 监听组件的生命周期 比如有父组件 Parent 和子组件 Child,如果父组件监听到子组件挂载 mounted 就做一些逻辑处理,…
​博客地址:https://ainyi.com/95 本人玩了 Vue 两年多,在此总结一下开发时的一些技巧和方法 自定义组件 v-model v-model 是 Vue 提供的一个语法糖,它本质上是由 value 属性 + input 事件组成的(都是原生的默认属性) 自定义组件中,可以通过传递 value 属性并监听 input 事件来实现数据的双向绑定 自定义组件 <template> <div> <input :value="value" @inp…
在vue的使用过程中会遇到各种场景,当普通使用时觉得没什么,但是或许优化一下可以更高效更优美的进行开发.下面有一些我在日常开发的时候用到的小技巧 data 和 Object.freeze 每个Vue实例都会代理其data对象里所有的属性,这些被代理的数据是响应式的,在其数据改变时视图也会随之更新. 在每个vue组件中都有一个data对象,不要把所有数据都放在data中.只把需要做响应式的数据放在data对象中:原因是:如果一个数据存在于data中,数据会被劫持,vue会给数据添加一个getter…
近年来,vue越来越火,使用它的人也越来越多.vue基本用法很容易上手,但是还有很多优化的写法你就不一定知道了.本文列举了一些vue常用的开发技巧.require.context() 在实际开发中,绝大部分人都是以组件化的方式进行开发.随之而来就有了许多的组件需要引入.比如以下场景: import outExperInfo from "@/components/userInfo/outExperInfo";import baseUserInfo from "@/compone…
# 在Vue 项目中引入Bootstrap 有时在vue项目中会根据需求引入Bootstrap,而Bootstrap又是依赖于jQuery的,在使用npm按照时,可能会出现一系列的错误 1.安装jQuery npm install jquery 2.安装Bootstrap npm 以上两步,也可以先在package.json 配置文件中指定版本号,然后运行 npm install 安装完了以后项目是跑不起来的,尽管二者都已经安装成功了,但还是会报错 "Bootstrap's JavaScript…
使用axios首先要下载axios模块包 npm install axios --save 其次需要在使用的文件中引入 import axios from 'axios' 一.调用axios常见两种方法(此处使用easy-mock模拟数据接口): //方法1 axios({ method: 'post', url:'http://easy-mock.com/mock/596077559adc231f357bcdfb/axios/test-post-axios' }) .then((respons…
判断空object Object.getOwnPropertyNames(obj).length === 0 模拟range Array.apply(null, Array(5)).map(function (_, i) {return i;}); => [0, 1, 2, 3, 4] 被vue观察后的object或array不再是空的 Object.getOwnPropertyNames(emptyObservedObject) == ['__ob__']…