• 如何使用 Element UI? 以登录框为例带你感受一下基础使用


    目录

     

    前言

    一、安装(所有内容)

    二、按需引入

    三、案例演示

    1.案前整理

    2.代码演示(后附源码) 

    3.源码


    前言

    Element-ui,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的组件库,提供了配套设计资源,帮助你的网站快速成型。由饿了么公司前端团队开源。

    一、安装(所有内容)

    npm i element-ui -S   终端安装

    在main.js中引入,此方法引入了所有功能,会导致项目文件较大,推荐按需引入,需要什么引入什么

    1. import ElementUI from 'element-ui';
    2. import 'element-ui/lib/theme-chalk/index.css';
    3. Vue.use(ElementUI);

    二、按需引入

    npm i element-ui -S 终端安装

    npm install babel-plugin-component -D  安装 开发依赖

    修改babel.config.js

    1. module.exports = {
    2.   presets: [
    3.     '@vue/app',
    4. ["@babel/preset-env", { "modules": false }]
    5.   ],
    6.    plugins: [
    7.       [
    8.         "component",
    9.         {
    10.           "libraryName": "element-ui",
    11.           "styleLibraryName": "theme-chalk"
    12.         }
    13.       ]
    14.     ]
    15. }

    新创一个专属的引入文件夹与src同级,引入想要引入的内容

    1. import Vue from 'vue'
    2. import {Button,Form,FormItem,Input,Col,Row,Message} from 'element-ui';
    3. Vue.use(Button)
    4. Vue.use(Form)
    5. Vue.use(FormItem)
    6. Vue.use(Input)
    7. Vue.use(Col)
    8. Vue.use(Row)
    9. // 弹出框挂载到vue原型身上,这样每个组件都是用this.message
    10. Vue.prototype.$message = Message

    main.js引入文件夹路径,这里拿我的为例

    import '@/plugins/element'

    三、案例演示

    1.案前整理

    提前准备了图片,样式,来配合实现一个较为美观的登录框,如果需要源码样式,私信留下邮箱免费领取,看见就回

    这里我还使用了简单的路由效果,来展现跳转页面,下面展示基础的效果

    2.代码演示(后附源码) 

    首先我们需要创建一个路由组件,将内容样式导入,这里直接跳过,样式代码后附,我们直接看如何引入element的代码

    虽然官网已经有了演示代码,但是我们要简单了解一下,每一步的意义

    如上的演示,我们很清楚需要利用的是input、button这种表单的样式,所以需要使用到 按钮是为了最后判断是否满足后台数据(此案例没有),也可以一起判断是否满足所有的规则,需要使用点击事件触发绑定@click

    第一步在新的组件中写入以下代码,也可以说是路由组件

    如上图在v-from中使用到了:model :rules来绑定,我需要在data中写入对应的绑定内容

     登录按钮判断是否全都满足

     在父组件APP中我们需要写入路由、占位符、给router-link绑定了v-show是为了让点击登录,登录按钮就会消失,其中也使用了element自带的美化按钮,直接使用,前提都是自定义安装中要有

    router代码中注册

    3.源码

    APP.vue代码

    1. <script>
    2. import Login from './views/Login.vue';
    3. export default {
    4. name: "app",
    5. components: { Login },
    6. computed:{
    7. isshow(){
    8. return this.$route.name=='login'?false:true
    9. },
    10. }
    11. }
    12. script>
    13. <style>
    14. @import url('./assets/style.css');
    15. .button{
    16. position: fixed;
    17. z-index: 9999999;
    18. }
    19. style>

     路由组件代码

    1. <script>
    2. export default {
    3. name: 'Login',
    4. data() {
    5. return {
    6. form:{
    7. username:'',
    8. password:''
    9. },
    10. forRules:{
    11. username:[
    12. {required:true,message:'用户名不能为空',trigger:'blur'},
    13. {min:3,max:10,message:'请输入3~10个字符',trigger:'blur'}
    14. ],
    15. password:[
    16. {required:true,message:'密码不能为空',trigger:'blur'},
    17. {min:3,max:10,message:'请输入3~10个字符',trigger:'blur'}
    18. ]
    19. }
    20. };
    21. },
    22. mounted() {
    23. },
    24. btn(){
    25. // this.$refs.fromRef.validate(isOK=>{
    26. // if(isOK){
    27. // console.log('1');
    28. // }else{
    29. // alert('请正确输入')
    30. // }
    31. // })
    32. this.$refs.fromRef.validate().then(()=>{
    33. }).catch(()=>{
    34. // alert('请正确输入')
    35. })
    36. }
    37. },
    38. };
    39. script>
    40. <style scoped>
    41. .login_main{
    42. height: 100%;
    43. width: 100%;
    44. background: url(../assets/img/login_bg.jpg) no-repeat;
    45. background-size: cover;
    46. }
    47. .login_box{
    48. width: 900px;
    49. height:515px;
    50. background: #fff;
    51. box-shadow: 0px 0px 10px 5px #ddebfe;
    52. position: absolute;
    53. top:50%;
    54. left:50%;
    55. transform: translate(-50%,-50%);
    56. border-radius: 12px 0px 0px 12px;
    57. }
    58. .login_box .l{
    59. background: url(../assets/img/login_left.jpg) no-repeat;
    60. width: 350px;
    61. height: 515px;
    62. border-radius: 12px 0px 0px 12px;
    63. }
    64. .login_box .r{
    65. width: 550px;
    66. box-sizing: border-box;
    67. padding: 30px;
    68. }
    69. h1{
    70. text-align: center;
    71. color: #4c4c4c;
    72. }
    73. .button{
    74. width: 100%;
    75. }
    76. style>

    router代码

    1. routes:[
    2. // 注册组件
    3. // {path:'/',redirect:'/login'},
    4. {name:'login',path:'/login',component:Login}
    5. ]
    6. })

    assets css代码引入到app.vue中

    1. html,body,div,ul,p{
    2. margin: 0;
    3. padding: 0;
    4. }
    5. html,body,#app{
    6. height: 100%;
    7. }
    8. .l{
    9. float: left;
    10. }
    11. .r{
    12. float: right;
    13. }
    14. .c{clear: both;}

    两张图片也放在assets使用时引入,如下点击自取图片

    背景图片

    登录图片

    结束语:分享到此就结束啦,有问题随时私聊

  • 相关阅读:
    CUDA和CuDNN安装
    Springboot拦截器中注入Bean
    树莓派环境配置
    这些电脑小妙招还有谁不知道?
    R可视化:plot函数基础操作,小白教程
    肝内胆管结石有哪些严重危害?
    455. 分发饼干
    西安邮电大学第三届网络安全技能大赛---PWN方向WP
    离职,问题就解决了吗?
    d域参数通过闭包逃逸
  • 原文地址:https://blog.csdn.net/yzq0820/article/details/126538720