vue中的一些好用的组件(自留)

vue这个强大的前端框架~越用越喜欢!新手也能用它一边学一边做出精美的页面,实现完美的功能!但是vue看似简单,它其实有很多我们都没有注意到的福利,还需要慢慢摸索,它衍生的一些组件,也很好用,emmmm虽然都是别人写的......

其实有很多UI库都为vue服务了,像我用过的mine-ui、element-ui、mui、vux-ui(个人觉得这个是真强大,里边很多API),虽然有些大牛都觉得用别人的ui库很low,但是为了开发方便,没有很厚实功底的人还是会选择便捷美观的ui库进行开发。有些时候我们引入一个库,其实用到的功能并不多,所以可能使项目文件大小增大。所以我们用到哪个功能就去下载哪个功能,也是不错的选择。

1.vue-easytable:一个智能的表单组件

它可以用来实现表格中你能想到的所有功能:自适应、固定列,表头固定、支持列宽拖动、排序、分页、单元格编辑、单元格合并、checkbox多选框

说到分页插一句话:最近我做的项目我不是用vue写的,直接用的JQ写的,一开始我之前没有去手动实现过分页,我直接采用了前端分页的方法,发现会有很多报错,因为前端分页的话需要获取到数据库里所有的数据进行分页展示,通过pageSize来创建tr的话,有些标签中的节点会拿不到,虽然不影响功能,但是作为程序员看见红色的错误信息会有强迫症的!所以不建议前端实现分页!有经验的后台不会让前端实现分页的!数据很少的情况下,可以选择前端分页,那要是数据很多呢?会为了功能丧失用户体验好感度的.....

安装:

npm install vue-easytable --save-dev

引入:

// 导入css

import 'vue-easytable/libs/themes-base/index.css'

// 导入 table 组件 和分页组件

import {VTable,VPagination} from 'vue-easytable'

// 将组件注册到全局

Vue.component(VTable.name, VTable)

Vue.component(VPagination.name, VPagination)

我这里就不添加演示了....因为我只是做一个记录....提醒自己如果用到了这个功能,我能记得....有谁看到了这篇文章,可以去:https://github.com/huangshuwei/vue-easytable github有这个大神写的例子。

2.vue-infinite-scroll:无限滚动加载

图片懒加载(瀑布流),应该能很好描述无限滚动加载。当我们行为达到某一个条件的时候,就去触发加载,不会一下子把所有数据都加载出来,它能够节省流量,提高用户体验。

安装:

npm i vue-infinite-scroll -D

引入:

// 注册全局

var infiniteScroll = require('vue-infinite-scroll');

Vue.use(infiniteScroll);

//单独的组件里面使用

var infiniteScroll = require('vue-infinite-scroll');

new Vue({ directives: {infiniteScroll} });

使用方式:https://segmentfault.com/a/1190000011693433  segmentfault上边写的很好~看了就会用的~

3.vue-layer-mobile:vue弹出层插件,包括toast、loading、dialog等浮层控件

这个嘛没什么好解释的,这几个是每个项目都要用到的功能~

安装:

// 当前最新版本 1.2.0

 npm install vue-layer-mobile

// 如新版遇到问题可回退旧版本 

npm install vue-layer-mobile@1.0.0

引入:

import 'vue-layer-mobile/need/layer.css'

import layer from 'vue-layer-mobile'

Vue.use(layer)  //全局使用

toast:

this.$layer.toast({  

        icon: 'icon-check', // 图标clssName 如果为空 toast位置位于下方,否则居中   

        content: '提示文字',  

        time: 2000 // 自动消失时间 toast类型默认消失时间为2000毫秒

})

loading:

this.$layer.loading('加载中...')

dialog:

this.$layer.dialog({  

        // 第一个是标题内容  第二个是标题栏的style(可以为空)                           

        title: ['这是标题', 'background:red;'],

        content: '这是内容',  

        contentClass: 'className',  

        btn: ['确定']  time: 2000

})

// 如果有btn

.then(function (res){  

         // res为0时是用户点击了左边  为1时用户点击了右边   

          let position = res === 0 ? 'left' : 'right'   

          console.log(position) 

   })

个人感觉这个很棒啊,就用这一个就能实现三个功能~也有单独将几个方法分开的组件,不过这一个就够了~使用方式也很简单,哪里需要就在哪里使用就行了~

5.Vue-Awesome-Swiper:基于 Swiper4、适用于 Vue 的轮播组件,支持服务端渲染和单页应用

安装:

npm install vue-awesome-swiper --save

引用:

import  Vue  from  'vue'

import  VueAwesomeSwiper  from 'vue-awesome-swiper' 

import  'swiper/dist/css/swiper.css' 

Vue.use(VueAwesomeSwiper, /* { default global options } */)

使用例子链接在册:https://www.npmjs.com/package/vue-awesome-swiper  这个幻灯片没啥好说的~

6.vue-directive:vue的自定义指令,相当于js中封装的方法

vue-directive是用来操作DOM的,虽然vue实现的是虚拟DOM,但是某些情况下操作DOM还是有需求的。所以就出现了自定义指令,重要的是它可以复用。

这个我是自己学习过,但是并没有拿到项目中用过,这个用好了真的挺方便的,除了vue内部的指令之外,还有很多功能我们可以封装成一个指令的,用的时候直接在el上加上“v-指令名”就行了。

自定义指令有5个生命周期:

bind:只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个绑定时执行一次的初始化动作。

inserted:被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于document中)。update:被绑定于元素所在的模板更新时调用,而无论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新。

componentUpdated:被绑定元素所在模板完成一次更新周期时调用。

unbind:只调用一次,指令与元素解绑时调用。

自定义指令有三个参数:el、 binding、vnode

el: 指令所绑定的元素,可以用来直接操作 DOM 。

binding: 一个对象,包含以下属性:

            name: 指令名,不包括 v- 前缀。

            value: 指令的绑定值

            oldValue: 指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。

            expression: 绑定值的字符串形式。 例如 v-my-directive="1 + 1" , expression 的值是 "1 + 1"。arg: 传给指令的参数。例如 v-my-directive:foo,

             arg 的值是 "foo"。

             modifiers: 一个包含修饰符的对象。 例如: v-my-directive.foo.bar, 修饰符对象 modifiers 的值是 { foo: true, bar: true }。

vnode: Vue 编译生成的虚拟节点

学会使用这个自定义指令对以后开发项目会有很多帮助的。

以后有好的东西我都存这里哈哈哈哈哈哈哈哈,当个笔记用嘛~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • 目录 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element★13489 ...
    余生社会阅读 19,640评论 7 233
  • 转载 :OpenDiggawesome-github-vue 是由OpenDigg整理并维护的Vue相关开源项目库...
    果汁密码阅读 23,073评论 8 124
  • 本来以为自己学过历史,读过唐诗,就知道了许多。但人往往是学得越多,越发现自己的无知。“绝句、草书、诗歌、舞蹈,这些...
    奇奇读书阅读 3,056评论 0 2
  • “我们今天要嗨爆全场,oh yeah……”我挥舞着手中的花枝,动作夸张的跟着音乐的节奏要摆着身体的各个部位。 今夜...
    汪星人E阅读 138评论 0 1
  • 新的一周才刚开始,但我却已觉得好久了。也许是这周轮到我值周,我内心抗拒值周,所以身体就表现疲惫了吗? 我不能让自己...
    想念99阅读 102评论 0 0