zoukankan      html  css  js  c++  java
  • 安装 Element、SCSS和axios(二)

    1、安装element-ui依赖。

    npm i element-ui -S

    2、项目导入

    按照安装指南,在 main.js 中引入 element,引入之后,main.js 内容如下:

    项目引入之后,我们在原有的 HelloWorld.vue 页面中加入一个 element 的按钮,测试一下。

    页面路由

    添加页面

    我们把 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>

    配置路由

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

    import Vue from 'vue'
    import Router from 'vue-router'
    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: 'Home',
          component: Home
        },
        {
          path: '/login',
          name: 'Login',
          component: Login
        }
        ,{
          path: '/404',
          name: 'notFound',
          component: NotFound
        }
      ]
    })

    浏览器重新访问下面不同路径,路由器会根据路径路由到相应的页面。

    http://localhost:8080/#/,/ 路由到 Home Page。

    http://localhost:8080/#/login,/login 路由到 Login Page。

    http://localhost:8080/#/404,/404 路由到 404 Error Page。

    安装 SCSS

    1.安装依赖

    因为后续会用到 SCSS 编写页面样式,所以先安装好 SCSS。

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

    安装不上的话,可以使用

    npm install node-sass --registry=https://registry.npm.taobao.org

    2.添加配置

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

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

    3.如何使用

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

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

    4.使用测试

    丰富一下 404 页面内容,加入 scss 样式,移除 App.vue 的 logo 图片。

    <template>
      <div class="site-wrapper site-page--not-found">
        <div class="site-content__wrapper">
          <div class="site-content">
            <h2 class="not-found-title">404</h2>
            <p class="not-found-desc">抱歉!您访问的页面<em>失联</em>啦 ...</p>
            <el-button @click="$router.go(-1)">返回上一页</el-button>
            <el-button type="primary" class="not-found-btn-gohome" @click="$router.push({ name: 'home' })">进入首页</el-button>
          </div>
        </div>
      </div>
    </template>
    
    <script>
    export default {
      name: '404'
    }
    </script>
    
    <style lang="scss">
      .site-wrapper.site-page--not-found {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        overflow: hidden;
        .site-content__wrapper {
          padding: 0;
          margin: 0;
          background-color: #fff;
        }
        .site-content {
          position: fixed;
          top: 15%;
          left: 50%;
          z-index: 2;
          padding: 30px;
          text-align: center;
          transform: translate(-50%, 0);
        }
        .not-found-title {
          margin: 20px 0 15px;
          font-size: 8em;
          font-weight: 500;
          color: rgb(55, 71, 79);
        }
        .not-found-desc {
          margin: 0 0 30px;
          font-size: 26px;
          text-transform: uppercase;
          color: rgb(118, 131, 143);
          > em {
            font-style: normal;
            color: #ee8145;
          }
        }
        .not-found-btn-gohome {
          margin-left: 30px;
        }
      }
    </style>
    View Code

     

    安装 axios

    axios 是一个基于 Promise 用于浏览器和 nodejs 的 HTTP 客户端,我们后续需要用来发送 http 请求。

    安装依赖

    执行以下命令,安装 axios 依赖。

    npm install --save-dev axios

     安装完成后,修改 Home.vue 进行简单的安装测试。

    <template>
      <div class="page">
        <h2>Home Page</h2>
        <el-button type="primary" @click="testAxios()">测试axios调用</el-button>
      </div>
    </template>
    
    <script>
    import axios from 'axios'
    export default {
      name: 'Home',
      methods:{
          testAxios(){
              axios.get('http://localhost:8080')
                .then(function(res){
                    alert(res.data);
                }).catch(function(res){
                    alert(res);
                })
          }
      }
    }
    </script>
    View Code

    点击测试按钮触发 http 请求,并弹出窗显示返回数据。

    安装 Mock.js

    为了模拟后台接口提供页面需要的数据,我们引入 Mock.js 为我们提供模拟数据,而不用依赖于后台接口的完成。

    安装依赖

    执行如下命令,安装依赖包。

    npm install mockjs --save-dev

    安装完成之后,我们写个例子测试一下。

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

    如下图所示:

    mock.js代码:

    import Mock from 'mockjs'; // es6语法引入mock模块
    
    Mock.mock('http://localhost:8080/user', {
      'name': '@name', // 随机生成姓名
      'email': '@email', // 随机生成姓名
      'age|1-10': 5
        // 其他数据
    });
    Mock.mock('http://localhost:8080/menu', {
      'id': '@increment', // 随机生成姓名
      'name':'menu',
      'order|10-20': 12
        // 其他数据
    });
    View Code

    修改 Home.vue,在页面放置两个按钮,分别触发用户和菜单的处理请求,成功后弹出获取结果。

    Home.vue代码:

    <template>
      <div class="page">
        <h2>Home Page</h2>
        <el-button type="primary" @click="getUser()">获取用户信息</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:{
          getUser() {
            axios.get('http://localhost:8080/user')
              .then(function(res) {
                alert(JSON.stringify(res.data));
              }).catch(function(res) {
                alert(res);
              });
          },
          getMenu() {
            axios.get('http://localhost:8080/menu')
              .then(function(res) {
                alert(JSON.stringify(res.data));
              }).catch(function(res) {
                alert(res);
              });
          }
      }
    }
    </script>
    View Code

    浏览器访问:http://localhost:8080/#/,分别点击两个按钮,mock 会根据请求 url 拦截对应请求并返回模拟数据。

    获取用户信息

    获取菜单信息

    OK,mock 已经成功集成进来了。

    原文出处:https://www.cnblogs.com/xifengxiaoma/ 
    自己整理记录。

  • 相关阅读:
    Node Node
    二叉排序树的实现
    Matlab Tricks(十五) —— 圆的正确画法
    Matlab Tricks(十五) —— 圆的正确画法
    Matlab Tricks(十四) —— 句柄(handle)(图形对象属性的读取与修改)
    Matlab Tricks(十四) —— 句柄(handle)(图形对象属性的读取与修改)
    (机器学习/计算机视觉/深度学习)代码
    (机器学习/计算机视觉/深度学习)代码
    论文的发表流程、会议的组织流程
    论文的发表流程、会议的组织流程
  • 原文地址:https://www.cnblogs.com/windok/p/10309332.html
Copyright © 2011-2022 走看看