在vue项目中,我们在做图片轮播的方式和传统切图不同,传统切图中我们一般采用非常强大的swiper来完成,而在vue中一般依赖vue-awesome-swiper组件来完成(vue-awesome-swiper其实就是基于swiper4封装的vue插件,所以如果你刚好熟悉swiper.js插件的话,基本你都能看明白).亲测有用,按照下面方法执行即可成功,方法如下: 1,安装组件通过命令行 npm install swiper 2,在main.js添加 import VueAwesomeSwipe…
layer.js是一个方便的弹出层插件,切图网专注于PSD2HTML等前端切图多年,后转向Vue开发.在vue开发过程中引入layer.js的时候遇到了麻烦.原因是layer.js不支持import导入,这时就需要修改一下它的源码.在看过它的源码后,发现需要修改的地方只有两处, 源码中已经暴露了一个全局变量layer,故只需在脚本末尾处添加 export default layer; 这表示将这个全局变量导出. 然后在文件中找到下面的代码注释掉,这段代码是为layer添加样式的,但使用的路径不对…
切图网是最早致力于PSD2HTML切图等web前端外包服务的,随着前端技术的更新迭代,现在也已经全面投入了vue的浪潮了,下面是vue中实现视频播放的方法. vue.js中引入video视频播放器 main.js中引入 import Video from 'video.js' import 'video.js/dist/video-js.css' Vue.prototype.$video = Video html页面 <video id="vide" class="vi…
Vue提供我们很多js动画钩子 写在tansition标签内部 入场动画 @before-enter="" 处理函数收到一个参数(e l) el为这个元素 @enter=""处理函数收到二个参数(e l, done)done() 为动画结束 @after-enter=""处理函数收到一个参数(e l) 出场动画 @before-leave="" 处理函数收到一个参数(e l) el为这个元素 @leave="&quo…
Vue 中使用 extend 开发组件 简介:再开发过程中那面会遇到自定义 loading alert 等全局组件,这里我们可以使用 vue 中的extend 来帮助我们完成 一个简单extend例子,如下: 新建 index.js 文件 import Vue from "vue"; import Index from "./index.vue"; const MessageBoxConstructor = Vue.extend(Index); const defa…
多个元素的过渡 <style> .v-enter,.v-leave-to{ opacity: 0; } .v-enter-acitve,.v-leave-active{ opacity: opacity 1s; } </style> <div id='app'> <transition> <div v-if='show'>hello world</div> <div v-else>bye world</div>…
vue2.5自定义分页组件 Pagination.vue,可设置每页显示条数,带跳转框直接跳转到相应页面,亲测有用.目前很多框架自带有分页组件比如elementUI,不过在面对一个拿到PSD稿,然后重新切图,重新VUE开发的项目来说,自定义分页组件才是应万变的最佳打开方式. html <template> <div class="pagination" v-if="totalPage>1"> <span v-if="!s…
vue 修饰符sync的功能是:当一个子组件改变了一个 prop 的值时,这个变化也会同步到父组件中所绑定. 不过它有一个前身,先来看看.sync出现之前是如何实现的 父组件中(传递给子组件一个值:propObj) <template> <div> <Lala :propObj="lalala" v-on:update:propObj="lalala = $event" ></Lala> </div> &l…
1.demo 项目结构: index.html <!DOCTYPE html> <html> <head> <title>标题</title> <meta charset="utf-8"> </head> <body> <h3 class="blue">h3标签内的文本</h3> <ul> <li>这是一个li标签</…
路由跳转   this.$router.push('/course'); this.$router.push({name: course}); this.$router.go(-1); this.$router.go(1); <router-link to="/course">课程页</router-link> <router-link :to="{name: 'course'}">课程页</router-link>…
vue父子通讯是单向数据流,也就是子组件不能修改父组件的值,但是在一些情况下是需要这样做的. 先看官方文档: 接下来举例实现 1.实现一个双向数据绑定,子组件改变的时候,父组件也在改变 父组件 <template> <div class="home"> <img alt="Vue logo" src="../assets/logo.png"> <child :titleSync.sync="ti…
1.通过$emit触发事件 在子组件<x-test>中触发事件: <button @click="toSearchProduct()">搜索</button> export default { methods: { show: function () { console.log(this.name) }, toSearchProduct: function () { this.$emit('parentEvent','哈哈啊哈哈') } } } 父组…
官网上是这样描述的 你可能有很多次想要在一个组件的根元素上直接监听一个原生事件.这时,你可以使用 v-on的 .native 修饰符 父组件App.vue <template> <div id="app"> <img alt="Vue logo" src="./assets/logo.png"> <HelloWorld @click="outClick"/> </div&g…
vue.js构建的轻量级PC网页端交互式弹层组件VLayer. 前段时间有分享过一个vue移动端弹窗组件,今天给大家分享一个最近开发的vue pc端弹出层组件. VLayer 一款集Alert.Dialog.Message.Notification.ActionSheet.Toast.Popover.Popconfirm等众多功能于一身的轻量级pc弹层组件.通过精巧的逻辑.布局解决复杂的对话框功能,为你呈现多样化弹出框效果! VLayer 在设计开发之初借鉴了业界有名的Layer弹窗.Eleme…
有时候我们需要在vue中使用轮播组件,如果是在vue组件中引入第三方组件的话,最好通过npm安装,从而进行统一安装包管理. 申明:本文所使用的是vue.2x版本. 通过npm安装插件: npm install swiper --save-dev 在需要使用swiper的组件里引入swiper,swiper的初始化放在mounted里 Slider.vue源码: <template> <div class="swiper-container"> <div c…
理解vue中的scope的使用 我们都知道vue slot插槽可以传递任何属性或html元素,但是在调用组件的页面中我们可以使用 template scope="props"来获取插槽上的属性值,获取到的值是一个对象.注意:scope="它可以取任意字符串";上面已经说了 scope获取到的是一个对象,是什么意思呢?我们先来看一个简单的demo就可以明白了~如下模板页面: <!DOCTYPE html> <html> <head>…
vue中引入babel步骤 vue项目中普遍使用es6语法,但有时我们的项目需要兼容低版本浏览器,这时就需要引入babel插件,将es6转成es5. 1.安装babel-polyfill插件 npm install --save-dev babel-polyfill 2.安装成功后有三种引入方式 第一种:在入口文件中引入,例如:main.js中加入 import 'babel-polyfill' 第二种:在 webpack.config.js 文件中,entry 入口处,按照如下修改 第三种:使…
使用vue-cli构建项目后,我们会在Router文件夹下面的index.js里面引入相关的路由组件,如: import Hello from '@/components/Hello' import Boy from '@/components/Boy' import Girl from '@/components/Girl' 普通加载的缺点: webpack在打包的时候会把整个路由打包成一个js文件,如果页面一多,会导致这个文件非常大,加载缓慢 1.require.ensure()实现按需加载…
 举个案例:循环data中的list的值在div中,并显示相应的index值. 关于数组的循环: //显示效果如下图: //一般的列表渲染最好带一个key值,要把key值设置为唯一值的话,可以选择index.但在频繁操作DOM元素相对应的数据的时候,它还是有点浪费性能,可能让Vue没法充分复用DOM节点,所以不太建议用index来做key值 //所以一般的项目中的后端会传递过来一些数据,这些数据可以把它作为key值来使用(一般会携带一个后端或数据库相关的一个唯一的数据条目标识符,例如:id) /…
在vue中可以使用some方法查找需要删除的所以 this.list.some((item, i) => { if (item.id == id) { this.list.splice(i, 1) return true; } }) 也可使用findIndex方法 var index = this.list.findIndex(item => { if (item.id == id){ return true; } }) this.list.splice(index, 1) vue中增加一个搜…
Vue 中的动画特效 CSS 实现标签显隐 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-U…
在vue中使用echarts主要是注意如何与vue生命周期相结合,从而做到数据驱动视图刷新 主要是以下几步: echarts的option配置项放在在data(){}或者computed(){}中 在mounted(){}生命周期去初始化数据,初始化echarts 在updated(){}生命周期中去setOption(option)渲染echarts. 模板vue文件如下: <template> <div id="myChart" ref="myChart…
如上所示一条简单的请求数据,用到了vue中axios,promise,qs等等 这里我将vue中用到的axios进行了封装方便日后使用  先对工具类进行封装utils/axios.js: // 引入模块 import axios from "axios" import qs from 'qs' // 是否允许跨域 axios.defaults.withCredentials=true; // axios初始化:延迟时间,主路由地址 let instance = axios.create…
vue中比较完美请求的栗子(使用 axios 访问 API) 官网地址:https://vuejs.bootcss.com/v2/cookbook/using-axios-to-consume-apis.html 实例: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" co…
mixins是一种分发Vue组件中可复用功能的一种灵活方式. mixins是一个JavaScript对象,可以包含组件中的任意选项,比如Vue实例中生命周期的各个钩子函数,也可以是data.components.methods或directives等.在Vue中,mixins为我们提供了在Vue组件中共用功能的方法.使用方式很简单,将共用的功能以对象的方式传入mixins选项中.当组件使用mixins对象时,所有mixins对象的选项都将被混入该组件本身的选项. 简单的说:可以将页面上复用的代码…
1. 前言 nextTick 是 Vue 中的一个核心功能,在 Vue 内部实现中也经常用到 nextTick.在介绍 nextTick 实现原理之前,我们有必要先了解一下这个东西到底是什么,为什么要有它,它是干嘛用的. 2. nextTick到底是什么 官方文档对 nextTick 的功能如是说明: 在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. // 修改数据 vm.msg = 'Hello' // DOM 还没有更新 Vue.nextT…
  写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习. 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家指出. 作者简介: 一个不知名的前端开发,正在为能走向更高更远的地方而努力. ​ VUE基础系列目录 <VUE基础系列(一)——VUE入坑第一篇> <VUE基础系列(二)——VUE中的methods属性> 一.前言 上一篇<VUE基础系列(一)——VUE入坑第一篇>我们学习并实践了下面的几个点: 创建了一个vue…
写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习. 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家和我一起交流. VUE基础系列目录 <VUE基础系列(一)——VUE入坑第一篇> <VUE基础系列(二)——VUE中的methods属性> <VUE基础系列(三)——VUE模板中的数据绑定语法> <VUE基础系列(四)——VUE中的指令(上)> 一.前言 vue中的指令是指以“v-”开头的一个语法,它主要…
写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习. 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家和我一起交流. VUE基础系列目录 <VUE基础系列(一)——VUE入坑第一篇> <VUE基础系列(二)——VUE中的methods属性> <VUE基础系列(三)——VUE模板中的数据绑定语法> <VUE基础系列(四)——VUE中的指令(上)> <VUE基础系列(五)——VUE中的指令(中)>…
一.vue中,默认情况下,调用组件时,传入一些没有在props中定义的属性,会把这些“非法”属性渲染在组件的根元素上(有一些属性除外),而这些“非法”的属性会记录在$attrs属性上. 二.如何控制不把这些非法的属性渲染在组件的根元素上呢?答案是在组件内部设置inheritAttrs:false即可. 三.通过v-bind="$attrs"可以把“非法”的属性渲染到指定的组件某个元素上. 四.如下图…