文章目录

  • Vue整合ElementUI
    • 下载喝配置ElementUI
    • 使用ElementUI
    • 美化我们的ElementUI
    • 实现路由跳转

Vue整合ElementUI

下载喝配置ElementUI

首先说一个事儿,要用ElementUI,最好是用Vue的脚手架先搭建好项目再用,如果直接在HTML中通过导入在线的vue、axios、elementUI的依赖,然后直接用的话。。。。会很麻烦,而且布局可能也会跟官网给你的不太一样。(这雷我先踩了,不信的小伙伴也大可以自己去试一下,毕竟也有可能是本人智力问题嘿嘿嘿)

ok,废话不多说,我们直接从vue怎么整合ElementUI说起。

首先,我们通过vue-cli创建我们Vue的脚手架。(不知道怎么下载vue-cli和搭建的,可以看我这片博客,里面的目录十一、Vue-cli搭建demo有详细介绍)

这里,我们直接使用vue init webpack vueDemo_1创建我们的Vue项目。(这里,我们前几个直接回车,后边全选No,最后选择npm、yaml那个,我们选第三个,所有东西都自己来整)

然后我们使用cd vue_elementui进入我们的项目,再用npm i vue-router --save-dev下载我们的vue-router。

然后我们可以去ElementUI的官网。看一下他怎么下载。也可以看我后边直接演示(更清晰易懂)。

首先,我们在我们的项目目录下,使用以下指令下载我们的element-ui,

npm i element-ui -S


然后下载我们的SASS加载器。(8.x开始的版本下载对 node 的版本有要求,所以我们指定让他下载7.3.1版本)

npm install sass-loader@7.3.1 node-sass --save-dev


使用npm install sass-loader@7.3.1 node-sass --save-dev下载失败或者,下一半突然就定住了的话,我们可以用下面这种方式下载(先下载cnpm,然后给cnpm配置淘宝的源,再用cnpm下载sass-loader和node-sass)。

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install sass-loader@7.3.1 node-sass --save-dev

最后使用npm install或者cnpm install 完成下载。

使用ElementUI

然后我们就可以开始在我们的Vue中用我们的ElementUI了。这里我们以写一个简单的信息提交页面为例讲一下大概怎么用吧。

我们先把手脚架里面那些不需要的删掉。(别让他影响我们发挥,不删的话,问题其实也不大)

删掉App.vue中的这些被框起来的内容。(删掉HelloWorld组件以及我们的logo)

然后删掉components目录下的HelloWorld.vue文件。

下面开始就是重点部分了!!!
下面开始就是重点部分了!!!
下面开始就是重点部分了!!!

首先,在需要引用我们的ElementUI组件的地方导入我们的ElementUI和他的样式。
我们在main.js中这么写:

import Vue from 'vue'
import App from './App'
//导入ElementUI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';//使用ElementUI
Vue.use(ElementUI);Vue.config.productionTip = false//初始化(这个render是初始化)
new Vue({el: '#app',render: h => h(App)
})

然后我们直接去ElementUI的官网找我们要的组件。比如我要找的是一个表单。

这里,我们点击显示代码,然后把他的代码直接copy下来。(script的代码另外copy)

我们在src下新建一个views目录,然后新建一个Login.vue作为我们的登录页。把ElementUI给的H5代码和js代码分别放到下面对应的位置。

完事了,我们写一下我们的路由,实现页面跳转功能。
首先在我们的App.vue中添加路由。
App.vue

<template><div id="app"><!-- 路由在此 --><router-view /></div>
</template><script>export default {name: 'App'
}
</script><style></style>

然后我们在src目录下新建一个路由的目录叫router。并新建一个index.js文件。
index.js

import Vue from 'vue'
//导入路由
import Router from 'vue-router'
//导入登录页
import Login from '../views/Login'//使用路由
Vue.use(Router);export default new Router({routes:[//登錄頁{//通过/login访问path:'/login',//路由名name:'Login',//使用的组件是我们导入的Logincomponent:Login}]
})

最后我们在main.js中使用我们的路由功能。
main.js

import Vue from 'vue'
import App from './App'
//导入ElementUI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
//導入我們的路由
import VueRouter from 'vue-router';
//倒入我們寫的路由(精確到目錄即可)
import router from './router'//使用ElementUI
Vue.use(ElementUI);
//使用路由
Vue.use(VueRouter);Vue.config.productionTip = false//初始化(这个render是初始化)
new Vue({el: '#app',render: h => h(App),router
})

如此,我们使用npm run dev后,访问我们的localhost:8080/#/login就可以看到我们的登录页面啦。

美化我们的ElementUI

上面那样子其实也不一定跟我们想要的就一毛一样,我们也可以对其样式进行修改。打开我们的Login.vue文件。在他的style中添加参数lang="scss"和scoped(这里定义的样式只在本文件生效)

<style lang="scss" scoped></style>

注意:如果你用的 sass-loader 是8.x以后的版本,那么你可能会收到以下报错信息。

Module build failed: TypeError: this.getOptions is not a function

如果真的收到了这个报错信息的话。。。恭喜你,重新下一次sass-loader吧。

cnpm install sass-loader@7.3.1 node-sass --save-dev
cnpm install

回归正题,我们如果想要修改他的样式,那么其实也很简单。如果他给了我们class值,我们就根据他的class值进行修改(当然也可以修改他的class的名称),如果没有给我们class值,我们就给他一个class值。

像这个表单,他已经给我们class的值了。

我们就直接在下面改就好了。(前面那个类名demo-ruleForm被我改成box了,所以我这里写的是.box)

<style lang="scss" scoped>.box{width: 300px;margin: 150px auto;border: 1px solid grey;padding-top: 50px;padding-right: 50px;}
</style>

注意:如果此时报错Module build failed: Error: Node Sass version 6.0.1 is incompatible with ^4.0.0. 就说明我们的node sass的版本太高了,他不兼容。这个时候,我们就得去我们的package.json文件中修改我们对应的版本号。他这里说的是我们的6.0.1不兼容,要用4.0.0,所以我们找到我们的node-sass,把版本号修改为4.0.0即可。

然后我们使用指令cnpm install更新一下我们的modules。

再次启动我们的Vue项目。可以看到,他变成这样了。

他的页面显示代码其实应该也还蛮容易看的,我们当然也可以对他的内容进行我们自己随意的更改。比如,加个2级标题,显示欢迎使用本系统。

 <div><el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="box"><h2 style="text-align: center;">歡迎光臨</h2><el-form-item label="密码" prop="pass"><el-input type="password" v-model="ruleForm.pass" autocomplete="off"></el-input></el-form-item><el-form-item label="确认密码" prop="checkPass"><el-input type="password" v-model="ruleForm.checkPass" autocomplete="off"></el-input></el-form-item><el-form-item label="年龄" prop="age"><el-input v-model.number="ruleForm.age"></el-input></el-form-item><el-form-item><el-button type="primary" @click="submitForm('ruleForm')">提交</el-button><el-button @click="resetForm('ruleForm')">重置</el-button></el-form-item></el-form></div>

显示结果:

要是看不惯他的按钮,我们还可以去elementUI找其他的按钮来替换他。
我们用这个吧。把提交和重置换成蓝色和透明色的圆角按钮。

把这两行抠出来

再把原先这两行删掉。(记得把点击事件留下)

最后变成这样:

       <el-form-item><!--改过后的按钮--><el-button type="primary" round @click="resetForm('ruleForm')">提交</el-button><el-button round @click="submitForm('ruleForm')">重置</el-button><!--改之前的按钮--><!-- <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button><el-button @click="resetForm('ruleForm')">重置</el-button> --></el-form-item>

结果:

实现路由跳转

之后我们要想实现路由跳转,只需要在views下写一个vue文件,并暴露出去。

<template><div>我是首页</div>
</template><script>export default{name: 'Main'}
</script><style>
</style>

然后在router下的index.js文件先导入再设置他的路由信息即可。
每个要添加路由所要添加的代码:

import Main from '../views/Main'export default new Router({routes:[//主页{path:'/main',name:"Main",component:Main}]
})

完整的代码如下:(包含登录页和首页两个链接的路由)

import Vue from 'vue'
import Router from 'vue-router'
import Login from '../views/Login'
import Main from '../views/Main'Vue.use(Router);export default new Router({routes:[//登錄頁{path:'/login',name:'Login',component:Login},//主页{path:'/main',name:"Main",component:Main}]
})

然后我们在其他页面,只需要在js中使用this.$router.push("/main");就可以实现路由功能啦!!!这个/main就是我们router/index.js文件中我们为每个Vue文件写的path啦。

Vue整合ElementUI相关推荐

  1. Vue整合ElementUI,组件使用教程,适合新手

    官网:Element 文章目录 Vue整合ElementUI 一. 按钮组件 二. Link 文件链接组件 三. Layout(栅格) 布局组件的使用 四. Container 布局容器 五. Rad ...

  2. Vue整合Element-UI的分页组件实现分页

    前段时间在做一个系统后台,需要用表格加载显示后台数据项并分页显示. 分页可以通过不同的方式实现: 1.客户端分页 一次请求把数据全部从后端请求回来,在前端处理,显示所需要的页面的数据项.这样做的好处是 ...

  3. Vue整合SpringBoot项目实战之Vue+Element-Ui搭建前端项目

    Vue整合SpringBoot项目实战之Vue+Element-Ui搭建前端项目 源码(欢迎star): 前端项目代码 后端项目代码 系列文章: Vue整合SpringBoot项目实战之后端业务处理 ...

  4. Vue、ElementUI

    1.什么是MVVM? MVVM是Model-View-ViewModel的简写,将View中的状态和行为抽象化. ViewModel在取出Model的数据同时帮忙处理View中由于需要展示内容而涉及的 ...

  5. Springboot+vue整合

    SpringBoot+Vue实战–博客管理 ​ 这段时间决定自学Vue并使用Springboot框架整合Vue项目.终于,再不懈的努力下,终究完成了一个个人博客系统.基本实现了,个人的添加博客模块,删 ...

  6. 视频教程-springboot+Vue整合前后端分离权限后台管理系统-Java

    springboot+Vue整合前后端分离权限后台管理系统 拥有八年的Java项目开发经验,擅长Java.vue.SpringBoot.springCloud.spring.springmvc.myb ...

  7. vue和elementui是什么关系

    ## vue简介 Vue 是一套用于构建用户界面的渐进式 JavaScript (主张最少)框架 ,开发者只需要关注视图层, 它不仅易于上手,还便于与第三方库或既有项目的整合.是基于MVVM(Mode ...

  8. Spring Cloud+Vue、Element-Ui、日常ip-config 君子:洪君

    目录 Vue.js 特点 悔创阿里杰克马,不知爹富王思聪,北大还行撒贝宁,一小目标王健林,不知妻美刘强东,普通家庭马化腾. https://gitee.com/hcking/  gitee主页 htt ...

  9. 织梦引用html,html直接引用vue和element-ui的方法

    短视频,站群系统,自媒体,达人种草一站服务 这篇文章主要介绍了html直接引用vue和element-ui的方法,本文通过实例代码给大家介绍的非常详细,采集软件,对大家的学习或工作具有一定的参考借鉴价 ...

最新文章

  1. JavaScript 简史
  2. Java垃圾回收机制(Garbage Collection)
  3. 继承 抽象 接口 多态
  4. pythontry参数_Python ——Try Except
  5. Java终于可以加入字符串
  6. mysql : 常用管理命令
  7. 中国成为「研究生大国」,99%研究生背后的焦虑:就业更难了!
  8. leetcode之移除链表的元素
  9. 手机喇叭积灰,一段音波就能清理干净
  10. 百度排名规则及算法(百度内部资料)
  11. 登录英雄联盟lol后无法显示界面出不来问题解决
  12. super-csv文档的部分翻译及基本使用
  13. 【windows】网络设置了代理,怎么关闭
  14. 来势汹汹,奥米克戎;是否补种,特定疫苗? | 经济学人全球早报精选
  15. Java面试题:GC 是什么? 为什么要有GC?
  16. JavaScript(JS)的DOM对象(JS的Document对象)----什么是DOM对象?
  17. 看了中国与别国的科研差距后,究竟什么才是真正的科研精神?
  18. 微信小程序---家庭记账本开发(四)
  19. python导出dxf图_利用Dxfwrite/ezdxf操作CAD文件!
  20. 卸载360安全卫士带来的悲剧

热门文章

  1. 学习React (3) - 如何用Jumbotron
  2. 基于PT8.2柔性传感器使用
  3. App马甲包开发需要注意的地方
  4. Winform中TopLevel与TopMost属性的区别
  5. 华为云计算之rainbow迁移实验
  6. matlab字符模板在哪,新人求助!车牌识别系统里的字符模版存放路径是哪里
  7. 什么是二级指针和为什么要用二级指针
  8. linux上ftp和ns有什么区别,Linux下ftp使用及nfs网络文件系统
  9. 实现SLIC算法生成像素画
  10. 美团算法 SP | 三面复盘