【Vue】Vue2使用ElementUI

目录

  • Element UI
    • 介绍
    • 特点
    • Vue2使用Element
      • 安装
      • 引入ElementUI组件库
    • 使用ElementUI
      • 用户注册
      • 列表展示
      • 其他
  • mint-ui
    • 介绍
    • 特点
    • 安装组件
    • 引入组件
    • Mint-ui相关组件

Element UI

介绍

  • 官网(基于 Vue 2.x ):https://element.eleme.cn/#/zh-CN

  • ElementUI 是一个基于 Vue.js 的桌面端组件库,由饿了么前端团队开发并维护。它提供了一套丰富的 UI 组件和布局,以及一些常用的功能组件,让开发者可以快速搭建美观、可用的 Web 应用。

  • ElementUI 的组件库包括按钮、表单、输入框、下拉菜单、表格、弹窗等等,它们都具有一致的样式和交互效果,可以方便地进行组合和定制。ElementUI 还提供了一些常用的功能组件,如日期选择器、分页器、消息提示等,这些组件可以大大简化开发过程,提高效率。

  • ElementUI 的设计风格简洁大方,符合现代化的 UI 设计规范。它使用了灵活的栅格系统来布局页面,可以适应不同尺寸的屏幕。同时,ElementUI 支持多语言和主题定制,开发者可以根据自己的需求进行配置。

  • ElementUI 提供了详细的文档和示例代码,可以帮助开发者快速上手并解决问题。此外,ElementUI 还有一个活跃的社区,开发者可以在社区中分享经验、提问问题,并获取帮助。

  • ElementUI 是一个功能强大、易于使用的前端组件库,适用于快速构建漂亮且可用的 Web 应用。无论是个人项目还是企业级应用,ElementUI 都能提供良好的支持,让开发变得更加高效和愉快。
    在这里插入图片描述

特点

ElementUI 的特点有以下几个:

  1. 简洁美观:ElementUI 的设计风格简洁大方,符合现代化的 UI 设计规范。它提供了一致的样式和交互效果,使得应用看起来非常美观,并且可以适应不同尺寸的屏幕。

  2. 丰富的组件:ElementUI 提供了一套丰富的 UI 组件,包括按钮、表单、输入框、下拉菜单、表格、弹窗等等。这些组件具有灵活的用法和丰富的功能,可以满足各种需求。

  3. 响应式布局:ElementUI 使用了灵活的栅格系统来布局页面,可以适应不同尺寸的屏幕。它支持响应式布局,使得应用在不同设备上都能有良好的展示效果。

  4. 高度可定制:ElementUI 支持多语言和主题定制,开发者可以根据自己的需求进行配置。它提供了丰富的主题和样式变量,可以方便地定制组件的外观和样式。

  5. 完善的文档和示例:ElementUI 提供了详细的文档和示例代码,开发者可以通过阅读文档和参考示例来快速上手和解决问题。它还有一个活跃的社区,开发者可以在社区中分享经验、提问问题,并获取帮助。
    在这里插入图片描述

Vue2使用Element

安装

npm下载ElementUI:npm install element-ui@2.15.3或者npm i element-ui -S

引入ElementUI组件库

在main.js中内容:

import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui';
//样式文件需要单独引入
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
Vue.config.productionTip = falsenew Vue({render: h => h(App),
}).$mount('#app')

使用ElementUI

其实在官网有很多很多案例,这里我准备了一个用户注册的form表单案例,和一个表格展示案例

用户注册

<template><div><el-form :model="user" status-icon :rules="rules" ref="user" label-width="100px" class="demo-user"><el-form-item label="账号" prop="userCode"><el-input type="text" v-model="user.userCode" autocomplete="off"></el-input></el-form-item><el-form-item label="姓名" prop="userName"><el-input type="text" v-model="user.userName" autocomplete="off"></el-input></el-form-item><el-form-item label="密码" prop="userPassword"><el-input type="userPassword" v-model="user.userPassword" autocomplete="off"></el-input></el-form-item><el-form-item label="确认密码" prop="checkPass"><el-input type="password" v-model="user.checkPass" autocomplete="off"></el-input></el-form-item><el-form-item label="性别" prop=""><el-radio-group v-model="user.gender"><el-radio-button label="0" ></el-radio-button><el-radio-button label="1" ></el-radio-button></el-radio-group></el-form-item><el-form-item label="出生年月" prop="birthday"><el-date-pickerv-model="user.birthday"align="right"type="date"placeholder="选择日期":picker-options="pickerOptions"></el-date-picker></el-form-item><el-form-item label="地址" prop="address"><el-input type="text" v-model="user.address" autocomplete="off"></el-input></el-form-item><el-form-item label="手机号" prop="phone"><el-input type="text" v-model="user.phone" autocomplete="off"></el-input></el-form-item><el-form-item label="角色" prop="userRole"><el-select v-model="user.userRole" placeholder="请选择"><el-optionv-for="item in roleList":key="item.value":label="item.name":value="item.value":disabled="item.disabled"></el-option></el-select></el-form-item><el-form-item label="兴趣爱好" prop="hobbys"><el-checkbox-groupv-model="user.hobbys"max="3"><el-checkbox v-for="hobby in hobbys" :label="hobby" :key="hobby">{{hobby}}</el-checkbox></el-checkbox-group></el-form-item><el-form-item><el-button type="primary" @click="submitForm('user')">提交</el-button><el-button @click="resetForm('user')">重置</el-button></el-form-item></el-form></div>
</template>
<script>
export default {// eslint-disable-next-line vue/multi-word-component-namesname:'Register',data() {//自定义校验规则var validatePass2 = (rule, value, callback) => {if (value === '') {callback(new Error('请再次输入密码'));} else if (value !== this.user.userPassword) {callback(new Error('两次输入密码不一致!'));} else {callback();}};return {hobbys:["唱","跳","RAP","打篮球"],roleList:[{name:'系统管理员',value:1},{name:'管理员',value:2},{name:'会员',value:3},{name:'游客',value:4}],//表单数据绑定user:{userCode:'',userName:'',userPassword:'',gender:0,birthday:'',phone:'',address:'',userRole:4,hobbys:[],checkPass:''},//定义表单基本的验证rules: {userCode: [{ required:true,trigger: 'blur', message: '请输入账号',  }],userName: [{ required:true,trigger: 'blur', message: '请输入用户名',  }],userPassword: [{ required:true,trigger: 'blur', message: '请输入密码',  }],checkPass: [{ validator: validatePass2, trigger: 'blur' }],},//日期插件设置pickerOptions: {disabledDate(time) {return time.getTime() > Date.now();},shortcuts: [{text: '今天',onClick(picker) {picker.$emit('pick', new Date());}}, {text: '昨天',onClick(picker) {const date = new Date();date.setTime(date.getTime() - 3600 * 1000 * 24);picker.$emit('pick', date);}}, {text: '一周前',onClick(picker) {const date = new Date();date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);picker.$emit('pick', date);}}]},};},methods: {submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {alert('submit!');} else {console.log('error submit!!');return false;}});},resetForm(formName) {this.$refs[formName].resetFields();}}
}
</script>

列表展示

<template><div><el-table:data="userList"stripestyle="width: 100%"><el-table-columnprop="id"label="ID"style="width: 15%"></el-table-column><el-table-columnprop="userCode"label="账号"style="width: 15%"></el-table-column><el-table-columnprop="userName"label="姓名"style="width: 15%"></el-table-column><el-table-columnprop="gender"label="性别"style="width: 6%"></el-table-column><el-table-columnprop="birthday"label="出生年月"style="width: 15%"></el-table-column><el-table-columnprop="phone"label="联系方式"style="width: 15%"></el-table-column><el-table-columnprop="address"label="地址"style="width: 15%"></el-table-column><el-table-columnprop="userRole"label="角色"></el-table-column><el-table-column label="操作"><template slot-scope="scope"><el-buttonsize="mini"@click="handleEdit(scope.$index, scope.row)">编辑</el-button><el-buttonsize="mini"type="danger"@click="handleDelete(scope.$index, scope.row)">删除</el-button></template></el-table-column></el-table></div>
</template>
<script>
export default {// eslint-disable-next-line vue/multi-word-component-namesname:'Register',data() {return{userList:[{id:1,userCode:'admin',userName:'系统管理员',gender:'男',birthday:'1993-11-12',phone:'13865427845',address:'北京市',userRole:'系统管理员'},{id:2,userCode:'sunshangxiang',userName:'孙尚香',gender:'女',birthday:'1999-12-17',phone:'13965489527',address:'郑州市',userRole:'游客'},{id:3,userCode:'guanyu',userName:'关羽',gender:'男',birthday:'2000-01-09',phone:'15765842469',address:'徐州市',userRole:'会员'},{id:4,userCode:'sunquan',userName:'孙权',gender:'男',birthday:'1992-10-08',phone:'18965552451',address:'杭州市',userRole:'管理员'},{id:5,userCode:'liubei',userName:'刘备',gender:'男',birthday:'1989-09-24',phone:'15068689595',address:'广州市',userRole:'管理员'},{id:6,userCode:'caocao',userName:'曹操',gender:'男',birthday:'1992-10-08',phone:'15545211245',address:'兖州市',userRole:'管理员'},{id:7,userCode:'huangyueying',userName:'黄月英',gender:'女',birthday:'2009-01-01',phone:'15966648531',address:'亳州市',userRole:'游客'},]}},methods: {}
}
</script>

在这里插入图片描述

其他

详见官网…

mint-ui

介绍

  • Mint UI是一个基于Vue.js的移动端组件库,由饿了么前端团队开发。
  • 它提供了一系列丰富的UI组件,包括按钮、输入框、弹窗、轮播图、下拉刷新等常用组件,可以帮助开发者快速构建移动端的Web应用。
  • Mint UI具有简单易用、效果好、样式漂亮等特点,受到了广大开发者的欢迎。
  • Mint UI官网: http://mint-ui.github.io/#!/zh-cn

特点

Mint UI具有以下特点:

  1. 简单易用:Mint UI提供了丰富的移动端UI组件,使用简单,开发者可以快速上手,并快速构建移动端应用。

  2. 轻量化:Mint UI的组件库比较轻量,可以高效地加载和运行在移动设备上,提供了更好的用户体验。

  3. 样式漂亮:Mint UI的组件拥有精美的视觉效果,具有现代化、时尚的外观,能够满足用户对于UI设计的要求。

  4. 功能丰富:Mint UI提供了丰富的组件,包括按钮、输入框、弹窗、轮播图、下拉刷新等常见的移动端UI组件,满足开发者在移动应用开发中的各种需求。

  5. 支持Vue.js:Mint UI是基于Vue.js开发的组件库,与Vue.js完美融合,开发者可以使用Vue.js的特性和功能来更加灵活地定制和使用组件。

总之,Mint UI具有简单易用、轻量化、样式漂亮、功能丰富等特点,适用于开发移动端的Web应用。Mint UI具有以下特点:

在这里插入图片描述

安装组件

npm install mint-ui -S

引入组件

  • 引入全部组件

    // 引入全部组件 import Vue from 'vue'; import Mint from 'mint-ui'; 
    Vue.use(Mint);
    
  • 按需引入

  • 借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。

  • 首先,安装 babel-plugin-component: npm install babel-plugin-component -D

    {"presets": [["es2015", { "modules": false }]],"plugins": [["component", [{"libraryName": "mint-ui","style": true}]]]
    }
    
  • 如果你只希望引入部分组件,比如 Button 和 Cell,那么需要在 main.js 中写入以下内容:需要引入样式:import 'mint-ui/lib/style.css';

    // The Vue build version to load with the `import` command
    // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
    import Vue from 'vue'
    import App from './App'
    import router from './router'// 1、引入Element-ui组件
    // import { Button } from 'element-ui';
    // Vue.use(Button)// 2、引入Mint-ui组件
    import 'mint-ui/lib/style.css';
    import {Button} from 'mint-ui';
    Vue.component(Button.name, Button);Vue.config.productionTip = false  //设置在控制台环境进行代码提示作用// 1.全局路由守卫
    router.beforeEach((to,from,next) => {/*to:表示要去的新页面from:表示旧的页面next:表示是否*/// 0——表示未登录// 1——表示已登录var islogin = 1;if(to.meta.needAuth){if(islogin == 0){router.push({name:'login'})}if(islogin == 1){next()}}else{next()}
    })// 2.全局过滤器
    Vue.filter('toFixed1',function(val,data,data1){return data1 + val.toFixed(data)
    })/* eslint-disable no-new */
    new Vue({el: '#app',router,components: { App },template: '<App/>'
    })
    

Mint-ui相关组件

官网文档: https://mint-ui.github.io/docs/#/zh-cn2
在这里插入图片描述

<template><div class="hello"><mt-button type="danger" @click="myToast">danger</mt-button><hr><el-button type="primary">主要按钮</el-button><hr><router-link to="/mydetail">产品详情</router-link><router-link to="/mycar">购物车</router-link><router-link to="/myorder">下单页面</router-link><hr><button @click="mytab">点击</button><hr/><router-link to="/tab">选项卡</router-link><hr/><myslot><div slot="name1">{{msg}}</div><div slot="name2">{{num}}</div></myslot><hr/><input type="text" placeholder="请输入用户名" v-model="t1"/><input type="text" placeholder="请输入密码" v-model="t2"/><button :class="{active:isTrue}">登录</button><hr/><input type="text" name="" id="" v-model="num3"/><hr/><input type="text" placeholder="请输入用户名" v-model="user"/><input type="text" placeholder="请输入密码" v-model="password"/><button :class="{active:getActive}">登录</button><h1>{{getAvg}}</h1><h1>{{getSum}}</h1><h1>{{num | toFixed(5,"$")}}</h1><h1>{{num1 | toFixed1(5,"$")}}</h1><h1>{{msg}}</h1></div>
</template><script>
import { Toast } from 'mint-ui';
import myslot from './02slot';export default {name: 'HelloWorld',data () {return {num:10,num1:20,num3:100,msg: 'Welcome to Your Vue.js App',user:'',password:'',isTrue:false,t1:'',t2:'',}},filters:{toFixed(val,data,data1){return data1 + val.toFixed(data)}},computed:{getSum(){return this.num + this.num1;},getAvg(){return this.getSum/2;},getActive(){if(this.user==''||this.password==''){return false}return true}},watch:{num3(){console.log("num3修改了")},t1(){if(this.t1 == '' || this.t2 ==''){this.isTrue = false}else{this.isTrue = true}},t2(){if(this.t1 == '' || this.t2 ==''){this.isTrue = false}else{this.isTrue = true}}},components:{myslot,},methods:{mytab(){//链式路由跳转this.$router.push({// 方式一// name:'tab'// 方式二path:'/tab',query:{id:100}})},myToast(){Toast({message: '提示',position: 'center',duration: 5000});}},
}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>.active{color: red;}h1, h2 {font-weight: normal;}ul {list-style-type: none;padding: 0;}li {display: inline-block;margin: 0 10px;}a {color: #42b983;}
</style>

前端第三方组件库国内官网地址

Vant-ui 国内官网: https://vant-contrib.gitee.io/vant/#/zh-CN/
layui 官网: https://layuion.com/docs/element/color.html
jQuery 官网:https://www.jquery123.com/
Apache ECharts 官网:https://echarts.apache.org/zh/index.html

微信开发文档官网:https://developers.weixin.qq.com/miniprogram/dev/framework/

w3c国内官网:https://www.w3school.com.cn/

mdn国内官网:https://developer.mozilla.org/zh-CN/docs/Web/HTML

swiper官网 :https://www.swiper.com.cn/usage/index.html

betterscroll官网:添加链接描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/14366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue文本溢出如何自动换行

css新增 word-break: break-all; word-wrap: break-word;

【Linux系统】文件与基础IO

本篇博客整理了文件与文件系统、文件与IO的相关知识&#xff0c;借由库函数、系统调用、硬件之间的交互、操作系统管理文件的手段等&#xff0c;旨在让读者更深刻地理解“Linux下一切皆文件”。 【Tips】文件的基本认识 文件 内容 属性。文件在创建时就有基本属性&#xff0…

网易:一季度营收269亿元,连续7季研发强度超15%领跑行业

5月23日&#xff0c;网易发布2024年第一季度财报。财报显示&#xff0c;网易Q1营收269亿元&#xff0c;归属于公司股东的净利润85亿元&#xff08;Non-GAAP&#xff09;&#xff0c;以连续7个季度超15%的研发投入强度领跑行业&#xff0c;首季业绩稳健启航。 一季度&#xff0…

JVM学习-动态链接和方法返回地址

动态链接–指向运行时常量池的方法引用 每一个栈帧内部包含一个指向运行时常量池中该栈帧所属方法的引用&#xff0c;包含这个引用的目的为了支持当前方法的代码能够实现动态链接(Dynamic Linking)&#xff0c;如invokednamic指令。在Java源文件被编译到字节码文件中时&#x…

JAVA:浅谈JSON与JSON转换

可能有很多人&#xff0c;无论是前端还是后端&#xff0c;无论是JAVA还是Python还是C&#xff0c;都应该跟JSON这种数据格式打过交道&#xff0c;那么有没有仔细的想过&#xff0c;什么叫JSON&#xff1f; JSON是一种轻量级的数据交换格式。它基于JavaScript语言的对象表示法&a…

初识java——javaSE(6)抽象类与接口【求个关注!】

文章目录 前言一 抽象类1.1 抽象类的概念1.2 抽象类的语法&#xff1a;1.3 抽象类与普通类的区别&#xff1a; 二 接口2.1 接口的概念2.2 接口的语法2.2.1 接口的各个组成2.2.2 接口之间的继承 2.3 接口的实现接口不可以实例化对象 2.4 接口实现多态 三 Object类3.1 Object类是…

第17讲:C语言内存函数

目录 1.memcpy使用和模拟实现2.memmove使用和模拟实现3.memset函数的使用4.memcmp函数的使用 1.memcpy使用和模拟实现 void * memcpy (void * destination, const void * source, size_t num);• 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存…

网络安全技术与应用:远程控制与数据库安全

实验准备 软件&#xff1a;VMware Workstation Pro 虚拟机&#xff1a;Red Hat Enterprise Linux 7 服务器&#xff0c;Red Hat Enterprise Linux 7 客户端 网络模式&#xff1a;NAT模式 1、配置服务器及客户端网络 服务器IP 客户端IP 测试相互通信 在客户机上设置镜像&#…

车载网络测试实操源码_使用CAPL脚本模拟发送符合协议要求(Counter和CRC)的CAN报文

系列文章目录 车载网络测试实操源码_使用CAPL脚本解析hex、S19、vbf文件 车载网络测试实操源码_使用CAPL脚本对CAN报文的Counter和CRC进行实时监控 车载网络测试实操源码_使用CAPL脚本模拟发送符合协议要求(Counter和CRC)的CAN报文 车载网络测试实操源码_使用CAPL脚本实现安全…

利用神经网络学习语言(四)——深度循环神经网络

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下&#xff1a;regression2chatgpt/ch10_rnn/char_rnn_batch.ipynb 《循环神经网络&#xff08;RNN&…

【移花接木】OpenCV4.8 For Java 深度学习 实时人脸检测

学习《OpenCV应用开发&#xff1a;入门、进阶与工程化实践》一书&#xff0c;学会本文所有技能就这么简单&#xff01; 做真正的OpenCV开发者&#xff0c;从入门到入职&#xff0c;一步到位&#xff01; 前言 我写这篇文章之前&#xff0c;我搜索整个网络文章跟问各种语言大模…

速卖通测评揭秘:如何选择安全的渠道操作

许多商家对测评存在误解&#xff0c;认为只需进行几次测评就能迅速打造爆款。实际上&#xff0c;测评是一个需要计划和持久性的过程&#xff0c;以便让平台检测到产品的受众程度并提高产品的曝光和权重。 在进行测评时&#xff0c;安全是首要考虑的问题。平台可以通过设备、网…

黑马点评1——短信篇(基于session)

&#x1f308;hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;一名不断学习的码农&#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 &#x1f3c3;人生之义&#xff0c;在于追求&#xff0c;不在成败&#xff0c;勤通…

如何使用多种算法解决LeetCode第135题——分发糖果问题

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

Ubuntu中 petalinux 安装 移植linux --tftp/tftp-hpa服务的方法

Xilinx 文档 PetaLinux 指南&#xff1a;如何创建 PetaLinux 环境 &#xff08;2019.1&#xff09; PetaLinux工具参考指南 PetaLinux安装详解(Xilinx , linux, zynq, zynqMP) petalinux 2020.1安装教程 一、PetaLinux工具和库安装 PetaLinux 工具要求主机系统 /bin/sh 为“b…

笔记 | 《css权威指南》

网络安全色 URL text-indent line-height & vertical-align 字体 font-weight 400 normal 700 bold background-attachment

【调试笔记-20240516-Windows-使用VS2019编译edk2(上)】

调试笔记-系列文章目录 调试笔记-20240516-Windows-使用VS2019编译edk2&#xff08;上&#xff09; 文章目录 调试笔记-系列文章目录调试笔记-20240516-Windows-使用VS2019编译edk2&#xff08;上&#xff09; 前言一、安装开发工具1. 安装 VS20192. 安装 Python 3.103. 安装 …

pdf加水印怎么加?3种添加水印方法分享

pdf加水印怎么加&#xff1f;PDF加水印不仅是为了保护文档内容&#xff0c;确保信息的安全性和完整性&#xff0c;更是一种有效的版权保护措施。通过添加水印&#xff0c;您可以在文档中嵌入公司名称、日期、编号等信息&#xff0c;以明确文档的归属权和使用限制。此外&#xf…

小而美:两步完成从源码到应用的极简交付

作者&#xff1a;花三&#xff08;王俊&#xff09; Serverless 应用引擎 SAE 是阿里云推出的一款零代码改造、极简易用、自适应弹性的容器化应用托管平台&#xff0c;面市以来为几万家企业客户提供服务&#xff0c;运行稳定&#xff0c;广受好评。 SAE 的出现解决了众多企业…

运行时异常和编译时异常的区别

Java中的异常被分为两大类&#xff1a;编译时异常和运行时异常。 都是RuntimeException类及其子类异常&#xff0c;如NullPointerException、IndexOutOfBoundsException。这些异常是不检查异常&#xff0c;运行时异常的特点是Java编译器不会检查它&#xff0c;程序中可以选择捕…