前段时间有朋友私信我 Vue + TypeScript 的问题,然后就打算写一篇 Vue + TypeScript 封装组件的文章 正好公司项目中需要封装一个表头查询组件,就拿出来分享一下~ 组件的整体思路是通过一个 config 数组生成列表的头部表单: PS:配合<Vue 爬坑之路(九)—— 用正确的姿势封装组件>食用更佳 一.组件设计 这个组件由两部分组成:输入组件和按钮 其中输入组件可以通过 v-for 循环渲染,并通过 v-if 来切换输入框 input 和下拉框 select 每个…
封装一个ECharts组件的一点思路 有关后台管理系统之前写过三遍博客,看这篇之前最好先看下这三篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-system 1.Vue + Element-ui实现后台管理系统(1) --- 总述 2.Vue + Element-ui实现后台管理系统(2) --- 项目搭建 + ⾸⻚布局实现 3.Vue + Element-ui实现后台管理系统(3) --- 面包屑 + Tag标签切换功能 这篇主要讲解实现图表的功能:…
element-ui组件 1.引入element import Vue from 'vue'; import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; import App from './App.vue'; Vue.use(ElementUI); const vue = new Vue({ el: '#app', template: '<App/>', components: {Ap…
(注:本文适用于有一定Vue基础或开发经验的读者,文章就知识点的讲解不一定全面,但却是开发过程中很实用的) 在平时的web项目开发过程中,列表分页查询展示应用的很频繁,为了便于阅读并减少代码的冗余,所以对ElementUI的表格和分页组件进行了二次封装. 首先在工程下的components目录下创建common文件夹并新建commonTable.vue文件,添加如下代码: <template> <div id="commonTable"> <el-tabl…
由于前端项目使用的是Vue-cli3.0 + TypeScript的架构,所以该组件也是基于ts语法封装的,组件的完整代码如下: <template> <div id="myImport"> <el-button type="primary" plain @click="importDialogVisible = true">导入</el-button> <!-- 导入弹窗 --> &l…
vue自定义插件封装示例 1.实现message插件封装(类似简易版的elementUi的message) message组件 <template>     <transition name="msgbox-fade" @after-leave="handleAfterLeave">         <div             :class="[                 'message_wrapper',   …
前两天封装了一个基于vue和Element的table表格组件,阅读的人还是很多的,看来大家都是很认同组件化.高复用这种开发模式的,毕竟开发效率高,代码优雅,逼格高嘛.虽然这两天我的心情很糟糕,就像"懂王"怼记者:"你是一个糟糕的记者:CNN,Fake news"一样的心情,但我还是忍着难受的心情来工作和分享,毕竟工作是饭碗,分享也能化解我糟糕透顶的心情. 今天,就来分享一下基于vue和Element所封装的form表单组件,其中所用到的技术,在上一篇文章封装Vue…
vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值. vue 父组件与子组件相互通信 一.父组件给子组件传值 props 实现父组件向子组件传值. 1父组件里: <child-pack :msg ="myMsg" v-on:listenTochildEvent="showMessageFromChild"></child-pack> msg是绑定的自定义属性,类似我们原生html 给标签自定义属性一样,W…
vue+elementUI封装的时间插件(有起始时间不能大于结束时间的验证): html: <el-form-item label="活动时间" required> <el-col :xs="24" :sm="11" :md="7" :lg="5" class="startTime"> <el-form-item prop="start_time&…
我们前端做项目时,难免会遇到地址输入,多数情况下,我们都是提供一个省市三级联动,加上具体地址输入的Input输入框给用户,用以获取用户需要输入的真实地址.在需要对用户输入的数据进行校验的时候,我们会单独针对省市的三级联动和具体地址栏单独校验.也基本上能够完成项目需求. 然而当我们转向vue+element做项目时,会产生一个比较尴尬的问题.在element组件库当中,对需要校验的字段是通过在el-form-item这一组件标签名上添加prop属性来校验的,如果依然按照以前的方法对省市联动和地址栏…
vue封装一些常用组件loading.switch.progress github文档https://github.com/zengjielin/vue-component-library loading组件 条形进度条 圆形进度条 switch组件…
转: vue修改elementUI的分页组件视图没更新问题 今天遇到一个小问题平时没留意,el-pagination这个分页组件有一个属性是current-page当前页.今天想在methods里面手动修改他绑定的变量从而达到修改页码的效果,结果发现分页组件视图并没有渲染,还是停留在原本的页码处.然后想了想,想起了.sync这个语法糖,让数据进行双向绑定. 直接上修改的代码看看 refresh () { this.handleCurrentChange(1) this.currentPage =…
0x00.前言 书接上文.项目经过一系列的配置,开发脚手架已经搭建完毕.接下来开始封装自定义组件.并基于 markdown 文件生成文档和演示案例. 后续文章代码会根据篇幅,不影响理解的情况下进行部分删减,详细代码可在 Github Repo 查看. 0x01.封装第一个组件 封装组件 接下来封装一个loading组件. 创建 packages/loading/src/main.vue 文件(篇幅问题,样式代码详见Github). 创建 packages/loading/index.js 文件.…
参考:https://www.cnblogs.com/fubinbin/p/9938528.html 在vue脚手架安装完成之后,页面正常跳出vue刚安装完的界面 我们开始引入elementui 1.打开项目 src\main.js 添加 import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) 2.package.json文件中添加 "element-u…
前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript 在 2018年 势头迅猛,可谓遍地开花. Vue3.0 将使用 TS 重写,重写后的 Vue3.0 将更好的支持 TS.2019 年 TypeScript 将会更加普及,能够熟练掌握 TS,并使用 TS 开发过项目,将更加成为前端开发者的优势. 所以笔者就当然也要学这个必备技能,就以 边学边实践…
最近在用element-ui重构前端项目,无意之中翻阅到一个比较好用的组件间通信方式,借助于vue的封装的发布-订阅消息模式与mixin语法.在开始之前先总结下vue常用的组件间通信方式,具体如下: 1.props与自定义事件 优点:常用的父子.子父组件传递方式,简单易懂 缺点:子父.父子之间传参比较高效,但是爷孙,兄弟组件之间存在通信短板,只能一级级传递 2.vue 2.4中新增的$attrs与$listeners 优点:解决了组件嵌套层次较深问题,通过在组件中绑定组件的属性值与监听组件的事件…
缘起 新的一天又开始啦,大家也应该看到我的标题了,是滴,Vue基础基本就到这里了,咱们回头看看这一路,如果你都看了,并且都会写了,那么现在你就可以自己写一个Demo了,如果再了解一点路由,ajax请求(这里是axios),那么你就可以准备面试前端了,哈哈,当然没有这么夸张,往后的路还很长,至少咱们基础都会了. 这里咱们再温习下之前讲了哪些基础知识: <十五 ║Vue前篇:了解JS面向对象原理 & 学会嵌套字面量等4种函数定义 & this指向> <十六  ║Vue前篇:E…
环境 win10 node -v 8.9.3 vue-cli 3.4 typescript 3.1.5 编辑器 vscode 目标 使用vuecli工具,建立一个项目,使用typescript.并实现基本的路由,组件等功能 步骤 一.建项目 官网文档https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create 安装必要的环境,然后使用管理员身份打开CMD输入vue ui: 这个是vuecli的图形化界面,使用它建立比较方便,命…
https://segmentfault.com/a/1190000011744210 2017-10-27 发布 vue + typescript 项目起手式 javascript vue.js typescript 24.3k 次阅读  ·  读完需要 33 分钟 65 vue + typescript 新项目起手式 最后更新于2018-06-30,技术文具有时效性,请知悉 我知道你们早就想用上 vue + ts 强类型了 还有后续 vue + typescript 进阶篇 安装vue-cl…
上一篇:Vue系列(二):发送Ajax.JSONP请求.Vue生命周期及实例属性和方法.自定义指令与过渡 一. 组件component 1. 什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码 组件是自定义元素(对象) 2. 定义组件的方式 方式1:先创建组件构造器,然后由组件构造器创建组件 方式2:直接创建组件 <div id="itany"> <hello></hello>…
vue 和 TypeScript 结合的情况下,很多写法和我们平时的写法都不太一样,这里总结我项目开发过程中遇到的问题和问题的解决方案 有些问题可能还没解决,欢迎各位大佬给与提点. 另外,使用本文前可以先看vue 官方文档关于 typescript 的使用讲解 整个 vue 项目的目录结构 大体用 vue-cli 创建的项目,结构基本不变. 这里只写我后来为了解决问题改动的地方 main.ts 中,提示import App from './App.vue'处,找不到 App.vue 这个模块 解…
vue+axios+elementUI文件上传与下载 Simple_Learn 关注  0.5 2018.05.30 10:20 字数 209 阅读 15111评论 4喜欢 6 1.文件上传 这里主要介绍一种,elementUI官网 上传组件 http-request 这种属性的使用.   图片.png 代码如下: <el-upload class="uploadfile" action="" :http-request='uploadFileMethod'…
相信大家都用过element-ui.mintui.iview等诸如此类的组件库,具体用法请参考:https://www.cnblogs.com/wangtong111/p/11522520.html 其中最引人注意的一点就是vue.use()的使用,那么我们怎么样才能自己封装一个也使用vue.use()的组件呢,看下面: 一.vue自定义组件 以loading组件为例: 1,首先新建loading文件夹,并在文件夹内新建loading.vue和index.js文件,如下图 2,在loading.…
基于vue-cli 3.x,配合typescript的环境构建的新vue项目,跟以前的结构相比,有了一些变化,下面我们来简单的了解一下 基本结构: node_modules: 项目中安装的依赖模块 public: 主页文件index.html && favicon.icon(将以往单独在外部的index.html移到了public文件夹下),index.html我们可以像平时普通的html文件一样引入文件(css,js)和书写基本信息,添加meta标签等. src: 源码文件夹,基本上我们…
通常我们在vue里面使用别人开发的组件,第一步就是install,第二步在main.js里面引入,第三步Vue.use这个组件.今天我简单的也来use一个自己的组件. 这里我用的webpack-simple这个简单版本的脚手架为例,安装就不啰嗦了,直接进入正题 首先看下目前的项目结构: webpack首先会加载main.js,所以我们在main的js里面引入.我以element ui来做对比说明 import Vue from 'vue' import App from './App.vue'…
前言 这是我封装的第一个Vue插件,实现的功能是滑动选择省市区,虽然只是一个简单的插件,但还是挺开心的,记录一下步骤. 插件地址:https://github.com/leichangchun/vue-area-select     欢迎指正 准备 Vue官网插件部分 的介绍虽然很简单,但是还是好好刷一遍的.由于此插件较为简单,主要用到以下两个点: 1 . Vue的插件需要有一个公开方法install 2 . 通过全局方法 Vue.use() 使用插件,在下文有栗子 创建工程 初始化工程 vue…
ElementUI的标签页组件支持动态添加删除,如下图: 但是这个组件不支持标签之间的拖动排序.那么我们自己怎样实现这个功能呢? 有一个叫vuedraggable的组件(https://github.com/SortableJS/Vue.Draggable),专门给vue使用的.但是这个组件要求必须把要排序的内容放到< draggable>标签的根下面,而el-tabs生成的子节点有很多级,就不能用这个组件了. 另外找了一个叫Sortable的组件可以完美实现拖动排序,https://gith…
第一步,在page下新建component文件,放你封装的小组件,和vue里的component差不多 第二步,在需要使用的组件的.json文件中添加usingComponents 第三步,在页面中引入组件index.wxml <!--pages/index/index.wxml--> <view class='address' bindtap='onChangeAddress'> <template is="mars" data="{{sele…
vue使用element-ui的el-input监听不了回车事件,原因应该是element-ui自身封装了一层input标签之后,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-input v-model="form.loginName" placeholder="账号" @keyup.enter="doLogin"></el-input> 解决方法需要在事件后面加上.native <el-input v-…
一.什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以表现为用 is 特性进行了扩展的原生 HTML 元素. 所有的 Vue 组件同时也都是 Vue 的实例,所以可接受相同的选项对象 (除了一些根级特有的选项) 并提供相同的生命周期钩子. 二.注册组件 全局注册 html代码: <div id="example&quo…