天天看點

elementui入門 - myJavaSE

elementui入門

1.前端伺服器搭建

(1)建立一個static web project

(2) 安裝 npm install -g vue-cli

(3) vue init webpack 項目名

(4)cd 項目名

​    npm run dev  運作服務

完成上面步驟後,就将vue.js項目放入到前端伺服器中運作了。如果安裝速度慢可以使用淘寶鏡像代理:npm config set registry https://registry.npm.taobao.org

2.element安裝

 Element,一套為開發者、設計師和産品經理準備的基于 Vue 2.0 的桌面端元件庫 ,是一種很好的前端開發,可以很好的用來實作前後端分離

(1)安裝

​    npm i element-ui -S

(2)引入elementui 在 main.js

  import ElementUI from \'element-ui\'; //引入核心js元件

  import \'element-ui/lib/theme-chalk/index.css\';//引入依賴的樣式

  Vue.use(ElementUI) //引用

3.配置main.js(所有配置寫在一起的,看的時候注意區分)

import Vue from \'vue\'
import App from \'./App\'
import router from \'./router\'
import ElementUI from \'element-ui\'; //引入核心js元件
import \'element-ui/lib/theme-chalk/index.css\';//引入依賴的樣式
import axios from \'axios\'//引入axios請求
import UserMock from \'./userMock.js\'//引入假資料源
//配置axios的全局基本路徑
axios.defaults.baseURL=\'\'
//全局屬性配置,在任意元件内可以使用this.$http擷取axios對象
Vue.prototype.$http = axios
Vue.use(ElementUI) //引用elementui
//上面這行代碼的意思 是阻止顯示生産模式的消息
Vue.config.productionTip = false//預設配置false

/* eslint-disable no-new */
new Vue({//挂載index中所有的路由群組件
  el: \'#app\',
  router,
  components: { App },
  template: \'<App/>\'
})      

1.element元件使用 效果: 用戶端(浏覽器)輸入位址-----> 根據路由進入相應的元件中---------->vue界面渲染,展示

步驟1:建立一個vue檔案

<template>
  <div id="app">
    <el-button @click="visible = true">Button</el-button>
    <el-dialog :visible.sync="visible" title="您好">
      <p>歡迎您</p>
    </el-dialog>
  </div>
</template>

<script>
  export default {
    name: \'elementUi01\',
    data () {
      return {
        msg: \'歡迎來到vue\',
        visible:false
      }
    }
  }
</script>      

步驟2:在index.js中配置路由(浏覽器通路的路徑,以及元件的引入)

import Vue from \'vue\'
import Router from \'vue-router\'
import HelloWorld from \'@/components/HelloWorld\'//引入界面模闆
import Elementui from \'@/components/_01elementui\'

Vue.use(Router)

export default new Router({//将路由導出到需要挂載的檔案中,main.js
  routes: [
    {
      path: \'/\',//通路路徑
      name: \'HelloWorld\',
      component: HelloWorld//元件名與上面導入的名稱一緻
    },
    {
      path: \'/_01elementui\',
      name: \'_01elementui\',
      component: Elementui
    },      

上面隻是一個簡單的引入,其他還有很多元件和樣式的使用,如el-button 按鈕、el-tree 樹形、el-table表格、el-form表單、el-pagination分頁、el-container容器、el-layout布局

el-tabs頁簽 頁籤、el-dialog對話框、el-alert 提示框等,使用的方式一樣,隻是界面展示内容不同,就不再重複了。

4.mockjs:前端工程師 用來模拟的資料

安裝mockjs

(1) npm install mockjs

(2)userMock.js(假資料生成的檔案)檔案引用 mockjs

let Mock=require(\'mockjs\') ;

(3)在js生成資料 ,攔截axios請求(了解)傳回自己生成的假資料,具體代碼如下

測試:

let Mock=require(\'mockjs\')
//定義一個數組
var dataList = [];
//循環16次生成資料,并将資料放入到數組中,得到一個裝有假資料的集合dataList
for(var i=0;i<16;i++){
    dataList.push(Mock.mock({
        \'id\': \'@increment\',
        \'name\': \'@cname\',
        \'phone\': /^1[0-9]{10}$/,
        \'email\': \'@email\',
        \'address\': \'@county(true)\',
        \'createTime\': \'@date("yyyy-MM-dd")\'
    }));
}
//分頁,index是起始資料,size帶表條數index*size,帶表結束資料
function pagination(index, size, list){
    return list.slice((index-1)*size,index*size);
}
//攔截axios請求opts,前端傳入的參數 para new RegExp(\'/user/list\',攔截的路徑
Mock.mock(new RegExp(\'/user/list\'), \'post\', (opts) => {
    //把上面得到的假資料指派給list集合
    var list =dataList;
    console.log(opts.body)
    //取出傳遞過來的參數的目前頁
    var index = JSON.parse(opts.body).page; //3
    //寫死的一頁條數
    var size = 10;
    //總條數
    var total = list.length
    //調用分頁方法,分頁
    list = pagination(index, size, list)
    //攔截ajax請求後将假資料的結果傳回
    return {
        \'total\': total,
        \'data\': list
    }
})      

5.使用axios發送請求完成(vue.crud)

安裝axios

1.cd 目前項目名

2.npm install axios --save

測試:具體代碼如下

<template>
  <div>
    <!--工具條-->
    <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
      <el-form :inline="true">
        <el-form-item>
          <el-input placeholder="關鍵字"></el-input>
        </el-form-item>
        <el-form-item>
          <el-button type="primary">查詢</el-button>
        </el-form-item>
        <el-form-item>
          <el-button type="primary">新增</el-button>
        </el-form-item>
      </el-form>
    </el-col>
    <!--users就是前端頁面展示内容的資料-->
    <el-table
      :data="users"
      style="width: 100%"
      border
      height="450px"
    >

      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="address"
        label="位址">
      </el-table-column>
      <el-table-column
        prop="email"
        label="郵件">
      </el-table-column>
      <el-table-column
        prop="phone"
        label="電話">
      </el-table-column>
      <el-table-column
        prop="createTime"
        label="建立時間"
        width="180">
      </el-table-column>
      <el-table-column
        fixed="right"
        label="操作"
        width="100">
        <template slot-scope="scope">
          <el-button @click="handleClick(scope.row)" type="text" size="small">檢視</el-button>
          <el-button type="text" size="small">編輯</el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-col :span="24" class="toolbar">
      <el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="10" :total="total" style="float:right;">
      </el-pagination>
    </el-col>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        users: [],
        total:0,
        page:1
      }

    },
    methods:{
      getUsers(){
        //這個是對象  {key:value}
        let para = {
          page:this.page
        }

        //加載資料
        //發送ajax 從背景查詢出來...沒有寫背景 --模拟背景資料 mockjs
        //res就是假資料傳回的結果
        this.$http.post(\'/user/list\',para).then(res=>{
          console.log(res);
          //自動假資料封裝成一個data對象
          //将加資料取出後指派給目前頁面中的users,然後就可以展示了
          this.users = res.data.data;
          //
          this.total = res.data.total;
        });
      },
    //監聽目前頁面的改變
      handleCurrentChange(val){
        //currentPage
        console.log(val);
        //把目前頁 指派給page這個字段
        this.page = val;
        this.getUsers();
      }
    },
    mounted(){
      //頁面加載完之後執行的方法
      this.getUsers();
    }
  };
</script>      
elementui入門 - myJavaSE