zoukankan      html  css  js  c++  java
  • vue2.0-elementUI

    main.js

    import Vue from 'vue'
    import App from './App.vue'
    
    import ElementUI from 'element-ui'
    import 'element-ui/lib/theme-default/index.css'
    
    Vue.use(ElementUI);
    
    new Vue({
      el: '#app',
      render: h => h(App)
    })

    App.vue

    <template>
      <div id="app">
        <el-button type="primary">主要按钮</el-button>
        <el-button type="danger">主要按钮</el-button>
        <el-button type="info" icon="close">主要按钮</el-button>
        <el-button type="success" icon="edit">主要按钮</el-button>
        <el-button type="warning" icon="search">主要按钮</el-button>
    
        <span class="el-icon-delete"></span>
        <span class="el-icon-loading"></span>
    
        <el-row>
          <el-col :span="12">
            <div class="my-grid"></div>
          </el-col>
          <el-col :span="12">
            <div class="my-grid"></div>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <div class="my-grid">
              <Date></Date>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="my-grid"></div>
          </el-col>
          <el-col :span="8">
            <div class="my-grid"></div>
          </el-col>
        </el-row>
      </div>
    </template>
    
    <script>
    import Date from './components/Date.vue'
    export default {
      name: 'app',
      data () {
        return {
          msg: 'Welcome to Your Vue.js App'
        }
      },
      components:{
        Date
      }
    }
    </script>
    
    <style scoped lang="less">
    @color:red;
    .height(@h){
      height:@h;
    }
    .my-grid{
      .height(50px);
      border:1px solid @color;
      
    }
    </style>
    vue问题:
        论坛
        http://bbs.zhinengshe.com
    ------------------------------------------------
    UI组件
        别人提供好一堆东西
    
        目的: 
            为了提高开发效率
            功能
    
        原则: 拿过来直接使用
    
    vue-cli  ->  vue-loader
    
    bootstrap:
        twitter    开源
        简洁、大方
        官网文档
    
        基于 jquery
    
        栅格化系统+响应式工具  (移动端、pad、pc)
        按钮
        
    都支持页面引入:<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
    
    也可以通过打包工具写在main.js里面
    import ElementUI from 'element-ui'
    import 'element-ui/lib/theme-default/index.css'
    最后把css打包在一个文件build.js。
    --------------------------------
    bower:    前端包管理器       jquery#1.11.1
        自动解决依赖(下载bootstrap并找到最合适的jquery版本)
    npm:    node包管理器      jquery@1.11.1
    --------------------------------
    
    饿了么团队开源一个基于vue 组件库
        elementUI    PC
        MintUI        移动端
    --------------------------------
    elementUI:
        如何使用
    
        官网:http://element.eleme.io/
    使用:
    1. 安装 element-ui
        npm i element-ui -D
    
        npm install element-ui --save-dev
    
        //   i    ->    install
        //   D     ->    --save-dev
        //   S    ->    --save
    2. 引入   main.js    入口文件
        import ElementUI from 'element-ui'
        import 'element-ui/lib/theme-default/index.css'
        全部引入
        
    3. 使用组件
        Vue.use(ElementUI)
    
        css-loader      引入css
        字体图标    file-loader
    
    
        less:
            less
            less-loader
    -------------------------------------------------
    按需加载相应组件:    √
        就需要 按钮
    1. 下载babel-plugin-component
        cnpm install babel-plugin-component -D
    2. .babelrc文件里面新增一个配置
          "plugins": [["component", [
            {
              "libraryName": "element-ui",
              "styleLibraryName": "theme-default"
            }
          ]]]
    3. 想用哪个组件就用哪个
        引入:
            import {Button,Radio} from 'element-ui'
        使用:
            a). Vue.component(Button.name, Button);  个人不太喜欢
            b). Vue.use(Button);   √
    ---------------------------------------------------
    发送请求:
        vue-resourse        交互
    
        axios
    ---------------------------------------------------
    element-ui    ->  pc
    
    mint-ui
        移动端 ui库
    
        http://mint-ui.github.io/
    
    1. 下载
        npm install mint-ui -S
    
        -S
        --save
    2. 引入
        import Vue from 'vue';
        import Mint from 'mint-ui';
        import 'mint-ui/lib/style.css'
        Vue.use(Mint);
    
        按需引入:
        import { Cell, Checklist } from 'minu-ui';
        Vue.component(Cell.name, Cell);
        Vue.component(Checklist.name, Checklist);
    
    http://mint-ui.github.io/docs/#!/zh-cn2
    
    论坛:
        
    -------------------------------------------------------
    
    Mint-ui-demo:  看着手册走了一遍
    
    https://github.com/itstrive/striveCode/tree/js/vue2.0-Mint-ui-demo

    按需引入:

    main.js

    import Vue from 'vue'
    import App from './App.vue'
    import './element-ui.js'
    
    new Vue({
      el: '#app',
      render: h => h(App)
    })

    element-ui.js

    import Vue from 'vue'
    
    
    // 按钮和单选....
    import {Button,Radio,DatePicker,Rate,Pagination} from 'element-ui'
    
    Vue.use(Button);
    Vue.use(Radio);
    Vue.use(DatePicker);
    Vue.use(Rate);
    Vue.use(Pagination);
    
    // tabs
    import {TableColumn,Table,Switch,Badge,TabPane,Tabs} from 'element-ui'
    Vue.use(Badge);
    Vue.use(Table);
    Vue.use(TabPane);
    Vue.use(Tabs);
    Vue.use(Switch);
    Vue.use(TableColumn);

    App.vue

    <template>
      <div id="app">
        <el-button @click="get">普通按妞</el-button>
      
        <div>
          {{myMessage}}
        </div>
    
        <hr>
    
        <el-button type="primary">普通按妞</el-button>
    
        <el-radio class="radio" v-model="radio" label="1">备选项</el-radio>
        <el-radio class="radio" v-model="radio" label="2">备选项</el-radio>
    
        <!-- 日历 -->
        <el-date-picker
          v-model="value1"
          type="datetime"
          placeholder="选择日期时间">
        </el-date-picker>
    
        <!-- rate -->
        <el-rate v-model="val"></el-rate>
    
        <!-- 分页 -->
        <el-pagination
          layout="prev, pager, next"
          :total="1000">
        </el-pagination>
    
        <!-- 选项卡 -->
        <el-tabs type="card">
          <el-tab-pane label="用户管理">
    
            <el-badge :value="200" :max="99" class="item">
              <el-button size="small">评论</el-button>
            </el-badge>
          
          </el-tab-pane>
          <el-tab-pane label="配置管理">
              <el-switch
                v-model="bSign"
                on-text=""
                off-text="">
              </el-switch>
          </el-tab-pane>
          <el-tab-pane label="角色管理">
              <el-table
                :data="tableData"
                style=" 100%">
                <el-table-column
                  prop="date"
                  label="日期"
                  width="180">
                </el-table-column>
                <el-table-column
                  prop="name"
                  label="姓名"
                  width="180">
                </el-table-column>
                <el-table-column
                  prop="address"
                  label="地址">
                </el-table-column>
              </el-table>
          </el-tab-pane>
        </el-tabs>
    
        <!-- button -->
        <myButton @click.native="get"></myButton>
    
      </div>
    </template>
    
    <script>
    import myButton from './components/Button.vue'
    import axios from 'axios'
    export default {
      components:{
        myButton
      },
      name: 'app',
      data () {
        return {
          myMessage:'默认数据',
          msg: 'Welcome to Your Vue.js App',
          radio:"1",
          value1:'',
          val:5,
          bSign:true,
          tableData: [{
            date: '2016-05-02',
            name: '王小虎',
            address: '上海'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海'
          }, {
            date: '2016-05-01',
            name: '王小虎',
            address: '上海'
          }, {
            date: '2016-05-03',
            name: '王小虎',
            address: '上海'
          }]
        }
      },
      mounted(){
        this.get();
      },
      methods:{
        get(){
          axios.get('https://api.github.com/users/itstrive')
          .then(function(res){
            this.myMessage=res.data;
          }.bind(this)).catch(function(err){
              console.log(err);
          })
        }
      }
    }
    </script>
    
    <style>
    .item{
      margin-top:30px;
    }
    </style>

    Button.vue

    <template>
        <div>
            <el-button>请求数据</el-button>
            <el-button>请求数据</el-button>
            <el-button>请求数据</el-button>
            <el-button>请求数据</el-button>
        </div>
    </template>

    .babelrc

    {
      "presets": [
        ["es2015", { "modules": false }]
      ],
      "plugins": [["component", [
        {
          "libraryName": "element-ui",
          "styleLibraryName": "theme-default"
        }
      ]]]
    }
  • 相关阅读:
    Java并发包concurrent——ConcurrentHashMap
    Eclipse中给SVN添加项目
    Maven在导入其他项目时报错:Plugin execution not covered by lifecycle configuration
    新导入的项目目录结构不对(main目录)
    java.lang.reflect.Method.getAnnotation()方法示例
    彻底理解ThreadLocal
    Oracle查询前几条数据的方法
    PLSQL Developer新手使用教程(图文教程)
    PLSQL连接本地oracle或远程oracle数据库,实现随意切换
    Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
  • 原文地址:https://www.cnblogs.com/yaowen/p/6994509.html
Copyright © 2011-2022 走看看