深入解析与实践:基于VUE-cli的Element-UI应用指南

一、前言

​ 本文介绍 Element-UI快速入门,基于vue-cli构建的基础项目。关于 vue-cli 构建项目的详细流程,可参考博文:
使用vue脚手架构建项目

二、简介

element-ui 是饿了么前端出品的基于 Vue.js的 后台组件库,方便程序员进行页面快速布局和构建。

Element-UI官方站点: https://element.eleme.cn/#/zh-CN


三、Element-UI使用

1、命令行方式安装库

  1. 创建一个新项目 element-ui-project

    在这里插入图片描述

  2. 当前项目下打开终端, 安装依赖包 ,执行命令npm i element-ui -s,等待安装完成后,打开package.json,可以看到

    在这里插入图片描述

  3. 打开 main.js , 导入Element-UI 相关资源.

    import Vue from 'vue'
    import App from './App.vue'
    import router from './router'Vue.config.productionTip = false//导入组件库
    import ElementUI from 'element-ui'//导入组件库相关样式
    import "element-ui/lib/theme-chalk/index.css"//配置vue插件,将EI安装到vue上
    Vue.use(ElementUI)new Vue({router,render: h => h(App)
    }).$mount('#app')
  4. 测试

    • 打开Element-UI官网,找到Element-UI的样式按钮

      在这里插入图片描述

    • 复制到app.vue的template下

      <template><div id="app"><el-row><el-button>默认按钮</el-button><el-button type="primary">主要按钮</el-button><el-button type="success">成功按钮</el-button><el-button type="info">信息按钮</el-button><el-button type="warning">警告按钮</el-button><el-button type="danger">危险按钮</el-button></el-row> <nav><router-link to="/">Home</router-link> |<router-link to="/about">About</router-link></nav><router-view/></div>
      </template><style>
      #app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;
      }nav {padding: 30px;
      }nav a {font-weight: bold;color: #2c3e50;
      }nav a.router-link-exact-active {color: #42b983;
      }
      </style>
    • 打开页面,测试

      在这里插入图片描述

2、工程改造

  1. 删除components 目录下的 HelloWord.vue组件

  2. 删除App.vue中的部分内容,修改为如下

    <template><div id="app"></div>
    </template><style>
    </style>
  3. 删除router文件下的路由文件 index.js部分内容,修改为如下

    import Vue from 'vue'
    import VueRouter from 'vue-router'Vue.use(VueRouter)const routes = []const router = new VueRouter({routes
    })export default router
  4. 删除views目录下的 About.vue 与 Home.vue

  5. 最终呈现为空界面

    在这里插入图片描述

3、安装axios

  1. 终端停止项目,使用 ctrl + c,出现下面提示:

    在这里插入图片描述

    输入y,回车

  2. npm安装:使用npm下载axios包,终端输入指令npm i axios

    在这里插入图片描述

  3. 在main.js文件中导入axios 相关资源

    import Vue from 'vue'
    import App from './App.vue'
    import router from './router'Vue.config.productionTip = false//导入组件库
    import ElementUI from 'element-ui'//导入组件库相关样式
    import "element-ui/lib/theme-chalk/index.css"//引入axios
    import axios from 'axios'//配置vue插件,将EI安装到vue上
    Vue.use(ElementUI)//vue使用axios,需要配置属性
    Vue.prototype.axios = axios;new Vue({router,render: h => h(App)
    }).$mount('#app')

四、简单案例

1、需求

通过Dialog制作一个登陆弹窗,包含:

  • 输入框:用户名、密码
  • 登录按钮

如下图所示:

在这里插入图片描述

2、代码演示

  1. Dialog对话框组件

    在官网找到对应的 组件位置

    在这里插入图片描述

  2. 创建Login.vue组件

    • 在components下创建Login.vue

    • 添加三大模块(template、script、style),并将官网组件的代码复制进来,修改为自己想要的样式

    <template>
    <el-dialog title="登录" :show-close="false" :visible.sync="dialogFormVisible"><el-form :model="form"><el-form-item label="用户名" :label-width="formLabelWidth"><el-input autocomplete="off"></el-input></el-form-item><el-form-item label="密码" :label-width="formLabelWidth"><el-input autocomplete="off"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button type="primary" @click="dialogFormVisible = false">登录</el-button></div></el-dialog>
    </template><script>export default {data() {return {dialogFormVisible: true,formLabelWidth: '120px'};}};</script><style scoped></style>
    
  3. 配置路由,修改index.js

    import Vue from 'vue'
    import VueRouter from 'vue-router'import Login from "@/components/Login.vue"Vue.use(VueRouter)const routes = [//访问 /,也跳转到login{path:'/',redirect: 'login' //重定向login},//登录{path:'/login',name:'login',component:Login}
    ]const router = new VueRouter({routes
    })export default router
  4. 修改App.vue

    <template><div id="app"><!-- router-view 的作用是根据访问的路径,渲染路径匹配到的视图组件 --><router-view></router-view></div>
    </template><style>
    </style>
  5. 编写登录功能,修改Login.vue

    • 双向数据绑定

    • data中定义数据,修改script部分

        <script>export default {data() {return {dialogFormVisible: true,formLabelWidth: '120px',user:{username:"", password:""},};}};</script>
      
    • v-model绑定视图和模型,修改template部分,并把登录按钮的点击事件修改为login方法

      <template>
      <el-dialog title="登录" :show-close="false" :visible.sync="dialogFormVisible"><el-form :model="form"><el-form-item label="用户名" v-model="user.username" :label-width="formLabelWidth"><el-input autocomplete="off"></el-input></el-form-item><el-form-item label="密码" v-model="user.password" :label-width="formLabelWidth"><el-input autocomplete="off"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button type="primary" @click="login">登录</el-button></div></el-dialog>
      </template>
      
    • 编写login方法,使用axios的get发送请求

      • 找到axios对应的方法部分

        在这里插入图片描述

      • 编写代码

  <script>export default {data() {return {dialogFormVisible: true,formLabelWidth: "120px",user: { username: "", password: "" },};},methods: {//登录的方法login() {//定义常量保存urlconst url = "";//发送请求this.axios.get(url, {//携带的参数params: {username: this.user.username,password: this.user.password,},}).then((resp) => {console.log(resp);alert("登录成功");//成功 关闭对话框this.dialogFormVisible = false;//进行页面跳转,跳转到首页,在前端进行页面跳转 必须使用路由.this.$router.push('index'); }).catch((error) => {//登录失败 提供消息提示this.$message.error("对不起!登录失败!");});},},};</script>

3、使用postman搭建mockserver

  1. 创建mockserver

    在这里插入图片描述

  2. 创建伪服务

    在这里插入图片描述
    点击创建,即可完成创建过程。

  3. 找到自动生成的url复制

在这里插入图片描述

  1. 修改上面组件中请求的url

    <template><el-dialog:show-close="false"title="用户登录":visible.sync="dialogFormVisible"><el-form><el-form-item label="用户名" :label-width="formLabelWidth"><el-input v-model="user.username" autocomplete="off"></el-input></el-form-item><el-form-item label="密码" :label-width="formLabelWidth"><el-input v-model="user.password" autocomplete="off"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button type="primary" @click="login">登 录</el-button></div></el-dialog></template><script>export default {data() {return {dialogFormVisible: true,formLabelWidth: "120px",user: { username: "", password: "" },};},methods: {//登录的方法login() {//定义常量保存urlconst url = "https://b8f48957-0c66-4905-89b8-69e270594660.mock.pstmn.io/login";//发送请求this.axios(url, {//携带的参数params: {username: this.user.username,password: this.user.password,},}).then((resp) => {console.log(resp);alert("登录成功");//成功 关闭对话框this.dialogFormVisible = false;//进行页面跳转,跳转到首页,在前端进行页面跳转 必须使用路由.this.$router.push('index'); }).catch((error) => {//登录失败 提供消息提示this.$message.error("对不起!登录失败!");});},},};</script><style scoped></style>

    注意:这里需要修改为你自己mockserver生成的url

4、测试

在这里插入图片描述

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

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

相关文章

前端JavaScript篇之let、const、var的区别

目录 let、const、var的区别 let、const、var的区别 let、const和var是JavaScript中用于声明变量的关键字&#xff0c;它们之间有一些区别。 首先&#xff0c;var是在ES5中引入的关键字&#xff0c;而let和const是在ES6中引入的。在ES6之前&#xff0c;我们只能使用var来声明…

思腾合力邀您共赴CNCC 2023中国计算机大会

思腾合力作为行业领先的人工智能基础架构解决方案商&#xff0c;受邀参加本次盛会。在会上展出思腾AI算力服务器&#xff0c;诚挚邀请众多参会嘉宾莅临展位&#xff0c;共同探讨人工智能与智能算力的产业趋势&#xff0c;共话技术创新发展&#xff0c;交流优秀产品与解决方案。…

【操作系统·考研】文件系统

1.概述 文件系统(File System)提供高效和便捷的磁盘访问&#xff0c;以便允许存储、定位、提取数据。 严格来说&#xff0c;VFS并不是一种实际的FS&#xff0c;它只存在于内存中&#xff0c;不存在与任何外存空间中。 VFS在系统启动时建立&#xff0c;在系统关闭时消亡。 2.结…

js新增的操作元素类名的方法

Element.classList是一个只读属性&#xff0c;返回一个元素 class 属性的动态 DOMTokenList 集合。这可以用于操作 class 集合。 尽管 classList 属性自身是只读的&#xff0c;但是你可以使用 add()、remove()、replace() 和 toggle() 方法修改其关联的 DOMTokenList。 兼容性…

如何从 Android SD 卡恢复已删除的文件

作为 Android 用户&#xff0c;您可能会使用 SD 卡来扩展手机的存储容量&#xff0c;并存储照片、视频和其他类型的文件。但意外发生时&#xff0c;您可能会错误地删除其中一些文件&#xff0c;或者由于其他原因而丢失它们。在大多数情况下&#xff0c;您可以通过主动并遵循正确…

一款轻量级、高性能、功能强大的内网穿透代理服务器

简介 nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发&#xff0c;可支持任何tcp、udp上层协议&#xff08;访问内网网站、本地支付接口调试、ssh访问、远程桌面&#xff0c;内网dns解析等等……&#xff09;&#xff0c;此外还支持内网htt…

reactnative 调用原生ui组件

reactnative 调用原生ui组件 ![组件对应关系](https://img-blog.csdnimg.cn/direct/c4351ad7bd38411e9c13087f1059a4b0.png)1.该样例已textView&#xff0c;介绍。 新建MyTextViewManager 文件&#xff0c;继承SimpleViewManager。import android.graphics.Color; import andr…

2024年美国大学生数学建模竞赛F题思路分析

题目 非法野生动物贸易对环境造成了负面影响&#xff0c;并威胁全球生物多样性。据估计&#xff0c;其涉及高达265亿美元的年交易额&#xff0c;被认为是全球所有非法交易中的第四大。[1] 你需要开发一个基于数据驱动的5年项目&#xff0c;旨在显著减少非法野生动物贸易。你的…

2024美赛数学建模F题思路分析 - 减少非法野生动物贸易

1 赛题 问题F&#xff1a;减少非法野生动物贸易 非法的野生动物贸易会对我们的环境产生负面影响&#xff0c;并威胁到全球的生物多样性。据估计&#xff0c;它每年涉及高达265亿美元&#xff0c;被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目&#xff0c;…

2024年美赛F题Problem F Reducing Illegal Wildlife Trade减少非法野生动物贸易的完整思路代码分享

非法的野生动物贸易会对我们的环境产生负面影响&#xff0c;并威胁到全球的生物多样性。据估计&#xff0c;它每年涉及高达265亿美元&#xff0c;被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目&#xff0c;旨在显著减少非法野生动物贸易。你的目标是说服一个…

Leetcode2772. 使数组中的所有元素都等于零

Every day a Leetcode 题目来源&#xff1a;2772. 使数组中的所有元素都等于零 解法1&#xff1a;差分数组 令差分数组 diff[i] nums[i] - nums[i - 1]&#xff0c;特别地&#xff0c;diff[0] nums[0]&#xff0c;diff[n] -nums[n-1]。 可以发现&#xff0c;差分数组具…

用Audio2Face导出Unity面部动画

开始之前说句话&#xff0c;新年前最后一篇文章了 一定别轻易保存任何内容&#xff0c;尤其是程序员不要轻易Ctrl S 在A2F去往Unity的路上&#xff0c;还要经历特殊Blender&#xff0c;自己电脑中已下载好的可能不是很好使。 如果想查看UE相关的可以跳转到下边这两篇链接 1. …

Linux小知识分享-压缩包解压之后属主和属组不是当前用户问题

今天给大家分享一个Linux小知识 背景 假设当前Linux下用户是root&#xff0c;我们从网络上或者其他环境下载了个压缩包进行本地解压。 结果发现解压之后的文件或者文件夹的 属主和属主 都不是当前用户root # 检查当前用户 [roottest-xxxx-01-vm /tmp/colinspace ]# id uid0(…

IDEA 配置和缓存目录 设置

IDEA系列产品&#xff0c;一般会在用户目录创建 配置 和 缓存 目录&#xff1a; %APPDATA%\JetBrains%LOCALAPPDATA%\JetBrains 一般会展示为&#xff1a; C:\Users\<username>\AppData\Roaming\JetBrainsC:\Users\<username>\AppData\Local\JetBrains 一般占用…

MtfLive直播导航PHP源码,附带系统搭建教程

将自动采集斗鱼、虎牙、触手、YY、章鱼、电视直播按分类/关键词聚合&#xff0c;用户选择分类&#xff0c;可以观看到全网该关键词下正在直播的内容。 特点 PC站和H5移动站自适应 自动缓存&#xff0c;避免频繁抓取数据 自定义抓取采集规则&#xff0c;同时支持HTML和JSON …

Character Auras 3

该包包含12种惊人的光环效果! 列表: 秋天的氛围 血光 五彩纸屑的光环 疾风 火光光环 森林氛围 治疗光环 冰系光环 爱的光环 毒气环 星光气场 所有预制件都已准备好用于游戏,只需将它们拖放到游戏中即可! 下载: ​​Unity资源商店链接 资源下载链接 效果图:

OJ刷题:《剑指offer》之左旋字符串!

目录 1.题目描述 2.方法一&#xff08;元素一一挪&#xff09; 2.1算法解析 2.2代码实现 3.方法二&#xff08;三次逆置&#xff09; 3.1算法解析 3.2代码实现 4.方法三&#xff08;库方法&#xff09; 4.1算法解析 4.2代码实现 5.完结散花 创作不易&#xff0c;宝子…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏8(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言配置可使用物品功能下载一些水果模型代码实现使用物品 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中&#xff0c…

Java面对对象

Java面向对象 面对对象概述&#xff0c;类与对象&#xff0c;继承&#xff0c;重写与重载&#xff0c;多态&#xff0c;抽象&#xff0c;封装&#xff0c;包&#xff0c;泛型&#xff0c;异常 面对对象概述 什么是面向对象&#xff08;OOP&#xff09; 面向对象(Object Ori…

【python3.8 pre-commit报错】记录pre-commit install报错

一、问题 在执行pre-commit install --allow-missing-config命令时&#xff0c;报错 Traceback (most recent call last):File "C:\ProgramData\Anaconda3\envs\py38\lib\runpy.py", line 192, in _run_module_as_mainreturn _run_code(code, main_globals, None,F…