摘要: Vue.js 最核心的功能就是组件(Component),从组件的构建、注册到组件间通信,Vue 2.x 提供了更多方式,让我们更灵活地使用组件来实现不同需求。 一、构建组件 1.1 组件基础 一个组件由 template、data、computed、methods等选项组成。需要注意: templ 阅读全文
posted @ 2018-12-18 19:35 lovollll 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 前提 项目是直接通过 vue cli脚手架 生成的; 假设在项目开发中,分为三个环境 · 测试环境· 预生产环境· 生产环境 每个环境的接口地址都是不同的,而 vue cli 给出的环境只有 dev 和 prod 这两个。虽然可以选择每次打包项目前手动修改 config/prod.env.js 中的 阅读全文
posted @ 2018-12-18 19:28 lovollll 阅读(342) 评论(0) 推荐(0) 编辑
摘要: vue image swipe 基于photoswipe实现的vue图片预览组件 安装 1 第一步 2 第二步 vue 入口文件引入 使用 methods 只暴露了一个方法this.$imagePreview,并绑定到vue的原型上使用 options有三个参数 参数 默认值 说明 images 空 阅读全文
posted @ 2018-12-18 19:28 lovollll 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 熟悉 eslint loader 的同学一般如下配置: 设置一下几项: test : A condition that must be met(一般是处理对应文件的正则) exclude : A condition that must not be met(手动添加不需要处理的,一般比如 node_ 阅读全文
posted @ 2018-12-18 18:53 lovollll 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 在 @vue/cli plugin babel/index.js 中: 我们看一下 api.genCacheConfig 在文件:@vue/cli service/lib/PluginAPI.js 中被定义: Generate a cache identifier from a number of 阅读全文
posted @ 2018-12-18 18:52 lovollll 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 官方文档中介绍过在 vue.config.js 文件中可以配置 parallel,作用如下: 我们看一下源码部分: parallel 接受 boolean 值: 默认设置如下: 依赖了函数 hasMultipleCores in some cases cpus() returns undefined 阅读全文
posted @ 2018-12-18 18:07 lovollll 阅读(1088) 评论(0) 推荐(0) 编辑
摘要: 首先还是简单介绍一下 webpack bundle analyzer 是做什么的: Visualize size of webpack output files with an interactive zoomable treemap. 一个很强大的用来优化打包之后文件提交的工具。 在老版本的脚手架 阅读全文
posted @ 2018-12-18 18:06 lovollll 阅读(2270) 评论(0) 推荐(0) 编辑
摘要: 首先,我们看到在 package.json 中有 scripts 的定义: "scripts": { "serve": "vue cli service serve", "build": "vue cli service build", "lint": "vue cli service lint"} 阅读全文
posted @ 2018-12-18 18:05 lovollll 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 在本文开始之前,先留一个问题? 如果在新版本我想加一个 drop_console 的配置呢? 在老版本的脚手架生成的配置中,对于线上环境的文件:webpack.prod.conf.js 使用了插件:uglifyjs webpack plugin 插件配置如下: 我们看一下新版本的是如何处理的呢? 在 阅读全文
posted @ 2018-12-18 18:04 lovollll 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 首先,请记住: 它在新版本的脚手架项目里面非常重要 它有什么用呢? inspect internal webpack config 能快速地在控制台看到对应生成的 webpack 配置对象。 首先它是 vue 的一个扩展命令,在文件 @vue/cli/bin/vue.js 中定义了 command 阅读全文
posted @ 2018-12-18 18:02 lovollll 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 在 vue.config.js 配置中有一个 indexPath 的配置,我们先看看它有什么用? 用来指定 index.html 最终生成的路径(相对于 outputDir) 先看看它的默认值:在文件 @vue/cli service/lib/options.js 中 默认值: 使用案例: 我们在 阅读全文
posted @ 2018-12-18 18:01 lovollll 阅读(708) 评论(0) 推荐(0) 编辑
摘要: 大家还记得我们在老版本中,对于线上环境配置中会把所有的 css 多打成一个文件: 核心是使用了插件 extract text webpack plugin,方式如下: 第一步都是加载插件 这个插件的描述如下: Extract text from a bundle, or bundles, into 阅读全文
posted @ 2018-12-18 18:00 lovollll 阅读(2243) 评论(0) 推荐(0) 编辑
摘要: 在 vue cli 3 初始化的项目根目录下面:和 src 同级有一个 public 目录 官网的说明如下:https://cli.vuejs.org/zh/guid... 然后我们把一个文件 a.png 放置到它里面,不管打包还是 dev 起服务的时候,可以通过根目录访问 比如 build 的时候 阅读全文
posted @ 2018-12-18 17:58 lovollll 阅读(9346) 评论(0) 推荐(0) 编辑
摘要: 写在前面 组件间的通信是是实际开发中非常常用的一环,如何使用对项目整体设计、开发、规范都有很实际的的作用,我在项目开发中对此深有体会,总结下vue组件间通信的几种方式,讨论下各自的使用场景 文章对相关场景预览 父 >子组件间的数据传递 子 >父组件间的数据传递 兄弟组件间的数据传递 组件 阅读全文
posted @ 2018-12-17 12:23 lovollll 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 一、先安装axios依赖,还有qs依赖 qs依赖包用post请求需要用到的 插入一个知识点: npm install X save 会把依赖包安装在生产环境中,并且把依赖包名称添加到 package.json 文件 dependencies。而如果npm install X save dev则会把依 阅读全文
posted @ 2018-12-17 12:19 lovollll 阅读(756) 评论(0) 推荐(0) 编辑
摘要: vue hash模式下,URL中存在' ',用'history'模式就能解决这个问题。但是history模式会出现刷新页面后,页面出现404。解决的办法是用nginx配置一下。在nginx的配置文件中修改 方法一: 方法二:vue.js官方教程里提到的https://router.vuejs.org 阅读全文
posted @ 2018-12-17 12:18 lovollll 阅读(853) 评论(1) 推荐(0) 编辑
摘要: 结论 对于event loop 可以抽象成一段简单的代码表示 js事件机制 javascript是一个单线程语言,同一时间只能执行一个任务。对于javascript的事件处理机制,我们可以简单理解成“主线程+任务队列”模式。主要步骤如下 (1)所有同步任务都在主线程上执行,形成一个执行栈。(2)主线 阅读全文
posted @ 2018-12-17 12:16 lovollll 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 一、引子 闭包(closure)是 Javascript 语言的一个难点,面试时常被问及,也是它的特色,很多高级应用都要依靠闭包实现。本文尽可能用简单易懂的话,讲清楚闭包的概念、形成条件及其常见的面试题。 我们先来看一个例子: 上面代码中,函数f1可以读取全局变量n。但是,函数外部无法读取函数内部声 阅读全文
posted @ 2018-12-17 12:14 lovollll 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 路由基本概念 route,它是一条路由。 routes,是一组路由。 router可以理解为一个容器,或者说一种机制,它管理了一组route。简单来说,route只是进行了URL和函数的映射,而在当接收到一个URL之后,去路由映射表中查找相应的函数,这个过程是由router来处理的。 VUE中 $r 阅读全文
posted @ 2018-12-17 12:11 lovollll 阅读(430) 评论(0) 推荐(0) 编辑
摘要: iview 3.x框架中新添了一个Anchor(锚点组件),用这个组件去做页面的分类导航正好合适,但是苦于官方文档太过抽象研究了一整天,才勉强可以在项目中应用。下面是我研究后的一点总结: 首先在main.js中引入iview 3.x我使用部分引用组件的方法所以要单独引入Anchor组件 接着在要使用 阅读全文
posted @ 2018-12-17 12:09 lovollll 阅读(581) 评论(0) 推荐(0) 编辑
摘要: 1、安装vue router 2、引入注册vue router 3、链接跳转 4、经常用到 5、路由配置 6、路由参数方式变化时,重新发出请求并更新数据 7、编程式导航 router.push({name:'user',params:{userId:'123'}}) //命名路由导航到user组件 阅读全文
posted @ 2018-12-17 12:08 lovollll 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 本文目前总结的特性如下1.侦听属性和计算属性2.class的绑定3.条件渲染时的注意事项4.v if和v for同时使用的注意事项5.插槽6.ref,父组件调用子组件的另一种方式7.<keep alive>标签 侦听属性和计算属性 计算属性computed假设有A、B两个变量,B的值依赖 阅读全文
posted @ 2018-12-17 12:07 lovollll 阅读(114) 评论(0) 推荐(0) 编辑
摘要: axios它是基于promise的http库,可运行在浏览器端和node.js中,然后作者尤雨溪也是果断放弃了对其官方库vue resource的维护,直接推荐axios库,小编我也是从vue resource转换过来的,差别说不来,我们讲一下axios在实际开发中的用法 axios特点 1.从浏览 阅读全文
posted @ 2018-12-17 11:52 lovollll 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 监听事件 可以使用v on指令监听DOM事件,并在触发的时候运行一些JavaScript代码。 事件处理方法 因为事件处理逻辑会更为复杂,所以直接把JavaScript代码写在v on指令中是不可行的,因此v on还可以接受一个需要调用的方法名称。 内联处理器中的方法 除了直接绑定到一个方法,也可以 阅读全文
posted @ 2018-12-16 12:08 lovollll 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 基础用法 你可以用v model指令在表单input,textarea以及select元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但是v model本质上不过是语法糖。它负责监听用户的输入事件以更新数据。 v model会忽略所有表单元素的value, che 阅读全文
posted @ 2018-12-16 12:07 lovollll 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 介绍 Vue 的 Provide 以及 Inject Provide 以及 Inject 是 Vue 中用于祖先元素向其所有后台元素注入依赖的接口。 具体用法 注意:通过 Inject 获得的属性是不可响应的。 项目中实际应用 在项目中,如需要两个基础组件的父子组件进行通信,又不想写太多业务无关代码 阅读全文
posted @ 2018-12-16 12:05 lovollll 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 方案背景 IOS用的是jsBridge插件实现调用、传参、回调的 安卓是在window挂载方法和挂载回调的 IOS实现方案 调用原生方法封装如下 实际调用如下 注册方法给原生 安卓实现方案 调用原生方法 定义回调方法/注册方法给原生 特殊说明 安卓在交互中的参数传递只能支持string类型,对象参数 阅读全文
posted @ 2018-12-16 12:04 lovollll 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 最近出去面试,栽在这个问题上,提到vuejs,面试官一般会让你说vuejs的特点,一般就要回答virtual dom tree, dom tree diff, 以及数据双向绑定,然后面试官会追问你,vuejs是如何实现数据双向绑定的,前面的问题算基础的话,能答出这个就更上一个台阶,说明你的思考能力不 阅读全文
posted @ 2018-12-16 12:03 lovollll 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 插槽内容 Vue实现一套内容分发的API, 这套API基于当前的web组件规范草案,将<slot>元素作为承载分发内容的出口。 然后在<navigation link>的模板中可能会写为: 当组件渲染的时候,这个<slot>元素将会被"Yourt Profile" 阅读全文
posted @ 2018-12-16 12:00 lovollll 阅读(110) 评论(0) 推荐(0) 编辑
摘要: Vue2介绍 1.vue2.0 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。 Vue 的核心库只关注视图层 采用单文件组件 复杂大型单页应用程序(SPA) 响应式的数据绑定,与组件化的开发 HTML中的DOM与其他的部分独立开来划分出一个层次,这个层次就叫做 阅读全文
posted @ 2018-12-16 11:58 lovollll 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 网页一进入判断是否登录,未登录跳转到登录页面 router.js main.js 来源:https://segmentfault.com/a/1190000016889438 阅读全文
posted @ 2018-12-16 11:51 lovollll 阅读(3775) 评论(0) 推荐(0) 编辑
摘要: 吐槽 今天,在vue中遇到 复杂表格的渲染 ,需要合并表头th的单元格,且合并单元格的那列的表头数据是动态数据,也就是不知道会有多少个表头列,而这几个表头列还分了好几个子表头。 这个需求在js里用Juicer模板很好做的,思路我是有的,但就是对于vue,我也算初学者,很多概念不是很懂,这就限制了思路 阅读全文
posted @ 2018-12-16 11:24 lovollll 阅读(436) 评论(0) 推荐(0) 编辑
摘要: Vue源码探究 数据绑定的实现 本篇代码位于vue/src/core/observer/ 在总结完数据绑定实现的逻辑架构一篇后,已经对Vue的数据观察系统的角色和各自的功能有了比较透彻的了解,这一篇继续仔细分析下源码的具体实现。 Observer // Observer类用来附加到每个观察对象上。 阅读全文
posted @ 2018-12-16 11:22 lovollll 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一、前言 forEach和map是数组的两个方法,作用都是遍历数组。在vue项目的处理数据中经常会用到,这里介绍一下两者的区别和具体用法示例。 二、代码 1. 相同点 都是数组的方法 都用来遍历数组 两个函数都有4个参数:匿名函数中可传3个参数item(当前项), index(当前项的索引), ar 阅读全文
posted @ 2018-12-15 20:06 lovollll 阅读(1883) 评论(0) 推荐(0) 编辑
摘要: 在微信内H5调起微信支付,主要依赖于一个微信的内置对象WeixinJSBridge,这个对象在其他浏览器中无效。 主要代码: 以上就是微信内H5调起支付的方法~ 原文地址:https://segmentfault.com/a/1190000017013969 阅读全文
posted @ 2018-12-15 19:49 lovollll 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 本人微信公众号:前端修炼之路,欢迎关注 背景介绍 大概在今年的十月份左右,我了解到Dcloud推出了uni app。当时下载了一个Hbuilder X,下载了官方提供的hello示例教程。经过一番努力,在云端打包成功了。当时这个软件还不够完善,用iphone真机模拟运行时,还会存在中文乱码问题。我还 阅读全文
posted @ 2018-12-15 19:48 lovollll 阅读(1630) 评论(0) 推荐(0) 编辑
摘要: 基于 vue cli3 搭建的前端模板,fork 或 clone 本仓库,即可搭建完成一个新项目的基础模板,源码地址,欢迎 star 或 fork 特性 CSS 预编译语言:less Ajax: axios,做了一定的封装,详见 src/services/request.js SVG 雪碧图:采用 阅读全文
posted @ 2018-12-15 19:45 lovollll 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 从很久之前就已经接触过了angularjs了,当时就已经了解到,angularjs是通过脏检查来实现数据监测以及页面更新渲染。之后,再接触了vue.js,当时也一度很好奇vue.js是如何监测数据更新并且重新渲染页面。今天,就我们就来一步步解析vue.js响应式的原理,并且来实现一个简单的demo。 阅读全文
posted @ 2018-12-15 19:43 lovollll 阅读(205) 评论(0) 推荐(0) 编辑
摘要: vue waterfall2 1.宽度自适应,数据绑定特效(适用于上拉加载更多) 2.自定义程度高 3.使用极为简便,适用于PC/移动端 4.提供resize(强制刷新布局 适用于下拉刷新)/mix(扰乱布局) API,一般情况下不需要用到 5.后期将持续更新,提供animation(过渡动画) D 阅读全文
posted @ 2018-12-15 19:41 lovollll 阅读(2740) 评论(0) 推荐(0) 编辑
摘要: 对 Vuex 源码进行浓缩,DIY 一个小型 Vuex 功能如下 通过 $store.commit 改变 $store.state 实现 strict model 源码约70行左右比较好理解,下面讲解一下两个比较重要的点。 install Vue.use(Vuex)实际上调用的是 Vuex 的 in 阅读全文
posted @ 2018-12-15 19:39 lovollll 阅读(107) 评论(0) 推荐(0) 编辑