初識Material-UI

簡介

Material-UI是一組實(shí)現(xiàn)了谷歌Material Design設(shè)計(jì)原則的React組件集合,江湖傳言使用Material-UI可以使我們的頁面顏色更鮮艷,動畫效果更突出(符合Material Design的設(shè)計(jì)風(fēng)格),那么接下來就由我來帶大家圍觀下吧~

Material-UI

What is Material Design

究竟什么是Material Design呢?

“設(shè)計(jì)是創(chuàng)造的藝術(shù),我們的目標(biāo)就是要滿足不同的人類需要。人們的需要會隨著時(shí)間發(fā)展,我們的設(shè)計(jì),實(shí)踐,以及理念也要隨之提升。我們在自我挑戰(zhàn),為用戶創(chuàng)造了一個(gè)可視化語言,它整合了優(yōu)秀設(shè)計(jì)的經(jīng)典原則和科學(xué)與技術(shù)的創(chuàng)新。這就是Material Design?!?—— 關(guān)于Material Design,其親爹谷歌是這么介紹的。

Material Design的設(shè)計(jì)風(fēng)格如下圖,其核心思想就是把物理世界的體驗(yàn)帶進(jìn)屏幕。去掉現(xiàn)實(shí)中的雜質(zhì)和隨機(jī)性,保留其最原始純凈的形態(tài)、空間關(guān)系、變化與過渡,配合虛擬世界的靈活特性,還原最貼近真實(shí)的體驗(yàn),達(dá)到簡潔與直觀的效果。

Material Design設(shè)計(jì)風(fēng)格

Material Design的設(shè)計(jì)原則如下:

  • 實(shí)體感就是隱喻(通過系統(tǒng)的動效和合理的空間利用去打造與眾不同的觸感);
  • 鮮明、形象、深思熟慮(制定了基礎(chǔ)的平面設(shè)計(jì)規(guī)范,提升用戶體驗(yàn));
  • 有意義的動畫效果(合理的有意義的動效可以吸引用戶的注意力,并且維持整個(gè)系統(tǒng)的連續(xù)性體驗(yàn));

對于Material Design就簡單介紹到這里,由于本人不是做設(shè)計(jì)的,就不擱這白話了,全憑大家用心去感受,如果大家對Material Design感興趣可以關(guān)注官方的文檔及規(guī)范。

麻溜滴,上DEMO

在我們的開發(fā)環(huán)境配置過程中,我們會用到node.js,so,沒有npm的同學(xué)請自行裝之。

請帶上你的依賴包

首先在我們的A、B、C、D、E、F、G任意盤上創(chuàng)建demo項(xiàng)目文件夾,執(zhí)行命令如下:

# 創(chuàng)建demo項(xiàng)目文件夾
mkdir material-ui
cd material-ui

# 初始化package.json文件
npm init

接下來安裝依賴包,擁為Material-UI在編寫時(shí)用到了ES2015的一些特性,所以在配置過程中我們會用到Babel( 一個(gè)廣泛使用的轉(zhuǎn)碼器,可以將ES6代碼轉(zhuǎn)為ES5代碼,從而在現(xiàn)有環(huán)境中執(zhí)行)。我們還會用到webpack(作為模塊加載器和打包工具),執(zhí)行命令如下:

# 安裝Material-UI部分
npm install --save material-ui

# 安裝React部分
npm install --save react react-dom react-tap-event-plugin

# 安裝Babel轉(zhuǎn)換器核心部分
npm install --save-dev babel-core babel-loader
 
# 安裝Babel轉(zhuǎn)換器的三個(gè)額外配置:ES2015(ES6),React,Stage1(ES7)
npm install --save-dev babel-preset-es2015 babel-preset-react babel-preset-stage-1

# 安裝webpack
npm install --save-dev webpack

配置Babel

上述過程如果順利完成的話,在 package.json 中添加一個(gè)對象babel,與"dependencies"保持同級。如果不順利的話,那么恭喜你,請?jiān)賮硪槐樯鲜鲞^程,與此同時(shí)面向西方開啟跪拜模式吧。。。

package.json內(nèi)容如下:

"babel" : { 
    "presets" : [ 
        "es2015",  
        "react", 
        "stage-1" 
    ], 
    "plugins": [] 
}

配置webpack

在我們項(xiàng)目根目錄下新建webpack的配置文件webpack.config.js,其內(nèi)容如下:

var path = require('path');
var webpack= require('webpack');
module.exports = { 
    entry: './entry.js',  // 入口文件
    output: { 
        path: path.join(__dirname, '/dist'),  // 打包路徑
        filename: 'bundle.js' // 打包文件名稱
    }, 
    resolve: { 
        extensions: ['', '.js', '.jsx'] 
    }, 
    module: { 
        loaders: [ { 
            test: /\.jsx?$/, 
            loaders: ['babel'] 
        } ] 
    }
}

寫一個(gè)AppBar

在項(xiàng)目根目錄下新建index.html,并引入我們生成的bundle.js,內(nèi)容如下:

<!DOCTYPE html>
<html lang="en">
<head>    
    <meta charset="UTF-8">    
    <title></title>
</head>    
<body>
    <div id="app"></div>
    <script src="dist/bundle.js"></script>
</body>
</html>

創(chuàng)建entry.js,其內(nèi)容如下:

import React from 'react';
import ReactDOM from 'react-dom';
import getMuiTheme from 'material-ui/styles/getMuiTheme';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import AppBar from 'material-ui/AppBar';
const App = () => ( 
    <MuiThemeProvider muiTheme={getMuiTheme()}> 
        <AppBar title="Hello World!" /> 
    </MuiThemeProvider>
);
ReactDOM.render(<App />, document.getElementById('app'));

在命令行中輸入webpack,執(zhí)行打包操作,執(zhí)行成功后,命令顯示如下:

命令行輸出信息

現(xiàn)在可以看到目錄下有了一個(gè)dist/bundle.js,打開index.html,效果如圖所示:

HelloWorld

至此,我們利用Material-UI的AppBar組件實(shí)現(xiàn)了一個(gè)簡單的頁面,除此之外Material-UI還實(shí)現(xiàn)了很多實(shí)用的組件,并且支持我們修改組件的主題,內(nèi)部樣式、顏色等定制化操作。到這里大家應(yīng)該對Material-UI有了初步的了解,如果想深入了解,還請參考其官網(wǎng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容