- 1. 引言
- 2. ElementUI案例
- 2.1 创建项目
- 2.2 安装依赖
- 2.3 创建页面
- 2.4 配置路由
- 2.5 运行程序
通过前面的章节,我们已经学会了使用vue-router
来实现页面的跳转,有兴趣的同学可以参阅下:
- 《Vue系列教程(01)- 前端发展史》
- 《Vue系列教程(02)- Vue环境搭建、项目创建及运行》
- 《Vue系列教程(03)- Vue开发利器VsCode》
- 《Vue系列教程(04)- VsCode断点调试》
- 《Vue系列教程(05)- 基础知识快速补充(html、css、js)》
- 《Vue系列教程(06)- Vue调试神器(vue-devtools)》
- 《Vue系列教程(07)- Vue第一个程序(MVVM模式的引入)》
- 《Vue系列教程(08)- 基本语法》
- 《Vue系列教程(09)- 事件绑定》
- 《Vue系列教程(10)- Model数据内容双向绑定》
- 《Vue系列教程(11)- 组件详解》
- 《Vue系列教程(12)- Axios异步通信》
- 《Vue系列教程(13)- 计算属性(computed)》
- 《Vue系列教程(14)- 插槽(slot)》
- 《Vue系列教程(15)- 事件内容分发($emit)》
- 《Vue系列教程(16)- 模块打包器(webpack)》
- 《Vue系列教程(17)- 路由(vue-router)》
目前我们的案例界面都是比较简单的,网上其实有很多好看的UI
框架,它们很好的兼容了Vue
,本文以ElementUI为例作一个讲解。
ElementUI
官网地址:https://element.eleme.cn/#/zh-CN
ElementUI 是网站快速成型工具,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
① 新建elui-demo
项目:
vue create elui-demo
③使用vscode
导入:
这里需要安装vue-router、element-ui、sass-loader
和node-sass
四个插件。
① 在vscode
菜单栏,依次Terminal -> new Terminal
,打开控制台后,安装依赖:
#安装vue-routern
npm install vue-router --save-dev
#安装element-ui
npm i element-ui -S
#安装依赖
npm install
# 安装SASS加载器
cnpm install sass-loader node-sass --save-dev
npm命令解释:
- npm install moduleName:安装模块到项目目录下
- npm install -g moduleName:-g的意思是将模块安装到全局,具体安装到磁盘哪个位置要看
npm config prefix
的位置 - npm install -save moduleName:
–save
的意思是将模块安装到项目目录下, 并在package
文件的dependencies
节点写入依赖,-S
为该命令的缩写 - npm install -save-dev moduleName:
–save-dev
的意思是将模块安装到项目目录下,并在package
文件的devDependencies
节点写入依赖,-D
为该命令的缩写
① components
文件夹创建登录页面(Login.vue
),可以直接复制ElementUI的代码过来:
欢迎登录
登录
请输入账号和密码
确定
export default {
name: "Login",
data() {
return {
form: {
username: "",
password: "",
},
//表单验证,需要在 el-form-item 元素中增加prop属性
rules: {
username: [
{ required: true, message: "账号不可为空", trigger: "blur" },
],
password: [{ required: true, message: "密码不可为空", tigger: "blur" }],
},
//对话框显示和隐藏
dialogVisible: false,
};
},
methods: {
onSubmit(formName) {
//为表单绑定验证功能
this.$refs[formName].validate((valid) => {
if (valid) {
//使用vue-router路由到指定界面,该方式称为编程式导航
this.$router.push("/main");
} else {
this.dialogVisible = true;
return false;
}
});
},
},
};
.login-box {
border: 1px solid #dcdfe6;
width: 350px;
margin: 180px auto;
padding: 35px 35px 15px 35px;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
box-shadow: 0 0 25px #909399;
}
.login-title {
text-align: center;
margin: 0 auto 40px auto;
color: #303133;
}
② components
文件夹创建主页面(Main.vue
):
首页
跳转到登录页面
export default {
name: "Main",
};
2.4 配置路由
① 配置router
文件夹下的index.js
文件,内容如下:
//导入vue
import Vue from 'vue';
import VueRouter from 'vue-router';
//导入组件
import Main from "../components/Main";
import Login from "../components/Login";
//使用
Vue.use(VueRouter);
//导出
export default new VueRouter({
routes: [
{
//首页
path: '/main',
component: Main
},
// 默认首页
{
path: '/',
redirect: '/main'
},
//登录页
{
path: '/login',
component: Login
},
]
})
② App.vue
里引入路由布局,代码如下:
export default {
name: 'App'
}
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
③ main.js
引入路由和ElementUI
:
import Vue from 'vue'
import App from './App'
import router from "./router"
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(router)
Vue.use(ElementUI)
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
render: h => h(App)
})
2.5 运行程序
运行程序:
npm run serve
可以看到报错了(解决方案参考:https://blog.csdn.net/qq_43610311/article/details/116736803): 这是因为sass-loader的版本过高导致的编译错误,需要退回到7.3.1,输入以下命令:
# 卸载当前版本
npm uninstall sass-loader
npm uninstall node-sass
# 安装
sudo cnpm install sass-loader@7.3.1 --save-dev
sudo cnpm install node-sass@4.14.1
运行的结果: 点击跳转: