【xxx-mall前端-环境搭建-02】-整合ElementUI

233 阅读2分钟

目录贴

1. 安装ElementUI

参考ElementUI官方文档

命令行进入项目目录内,执行以下命令安装elementUI

我们这里使用yarn去安装

yarn add element-ui

2. 项目导入vs code工具中,整合测试

File -> Open Folder 选中xxx-mall-web文件夹,打开,如下:

我这里文件都是绿色的,是因为我的xxx-mall-web的外层文件夹是从码云代码仓库中检出来的,所以加入的文件都是有版本控制器管理的

参考官方文档引入elementUI到main.js中

最终main.js代码如下

到elementUI官方随意找一个按钮,放到项目中的HelloWord.vue中

命令行启动项目,并访问,如下则安装elementUI成功。

3. 配置路由

3.1 添加页面

我们把 components 改名为 views,并在 views 目录下添加三个页面,Login.vue,Home.vue,404.vue。

三个页面内容简单相似,只有简单的页面标识,如登录页面是 “Login Page”。

Login.vue,其他页面类似。

<template>
  <div class="page">
    <h2>Login Page</h2>
  </div>
</template>

<script>
export default {
  name: 'Login'
}
</script>

3.2 配置路由

打开 router/index.js,添加三个路由,分别对应主页、登录和404页面。

原来的HelloWord.vue我们就可以不要了,我这里注释掉了。

路由最终代码如下:

import Vue from 'vue'
import Router from 'vue-router'
// import HelloWorld from '@/components/HelloWorld'
import Login from '@/views/Login'
import Home from '@/views/Home'
import NotFound from '@/views/404'

Vue.use(Router)

export default new Router({
  routes: [
    // {
    //   path: '/',
    //   name: 'HelloWorld',
    //   component: HelloWorld
    // }
    {
      path: '/',
      name: 'Home',
      component: Home
    },
    {
      path: '/login',
      name: 'Login',
      component: Login
    }
    ,{
      path: '/404',
      name: 'notFound',
      component: NotFound
    }
  ]
})

3.3 路由验证

  1. 浏览器访问:http://localhost:8080,出现以下界面

  2. 浏览器访问:http://localhost:8080/#/Login,出现以下界面

  3. 浏览器访问:http://localhost:8080/#/404,出现以下界面

4. 安装 SCSS

4.1 添加依赖

yarn add sass-loader node-sass --dev

4.2 修改配置

在build文件夹下的webpack.base.conf.js的 rules 标签下添加配置。

{
  test: /\.scss$/,
  loaders: ['style', 'css', 'sass']
}

4.3 如何使用

在页面代码 style 标签中把 lang 设置成 scss 即可。

<style lang="scss">

</style>

4.4 使用测试

TODO

5. 安装axios

5.1 安装依赖

yarn add axios

5.2 代码修改,测试

修改Home.vue代码

<template>
  <div class="page">
    <h2>Home Page</h2>
    <el-button type="primary" @click="testAxios()">主要按钮</el-button>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  name: 'Home',
  methods:{
    testAxios(){
      axios.get('http://localhost:8080')
      .then(res => {
        alert(res.data);
      }).catch(e => {
        alert(e);
      })
    }
  }
}
</script>

启动项目,访问首页,验证,点击按钮,出现响应弹框即可。

6. 安装Mock.js

6.1 安装依赖

yarn add mockjs --dev

6.2 代码调整

在 src 目录下新建一个 mock 目录,创建 mock.js,在里面我们模拟了两个接口,分别拦截用户和菜单的请求,并返回相应的数据。

import Mock from 'mockjs'

Mock.mock('http://localhost:8080/user',{
    'name': '@name', //随机生成
    'email': '@email',
    'name|1-10': 5
})


Mock.mock('http://localhost:8080/menu',{
    'id': '@increment', //随机生成
    'name': 'menu',
    'order|10-20': 12
})

修改Home.vue代码

<template>
  <div class="page">
    <h2>Home Page</h2>
    <el-button type="primary" @click="testAxios()">主要按钮</el-button>
    <el-button type="primary" @click="getUserInfo()">获取用户信息</el-button>
    <el-button type="primary" @click="getMenu()">获取菜单信息</el-button>
  </div>
</template>

<script>
import axios from 'axios';
import mock from  '@/mock/mock.js';

export default {
  name: 'Home',
  methods:{
    testAxios(){
      axios.get('http://localhost:8080')
      .then(res => {
        alert(res.data);
      }).catch(e => {
        alert(e);
      })
    },
    getUserInfo(){
      axios.get('http://localhost:8080/user')
      .then(res => {
        alert(JSON.stringify(res.data));
      }).catch(e => {
        alert(e);
      })
    },
    getMenu(){
      axios.get('http://localhost:8080/menu')
      .then(res => {
        alert(JSON.stringify(res.data));
      }).catch(e => {
        alert(e);
      })
    }
  }
}
</script>

6.3 测试

启动服务,访问首页

点击获取用户信息按钮

点击获取菜单信息按钮