初识Material-UI

简介

Material-UI是一组实现了谷歌Material Design设计原则的React组件集合,江湖传言使用Material-UI可以使我们的页面颜色更鲜艳,动画效果更突出(符合Material Design的设计风格),那么接下来就由我来带大家围观下吧~

Material-UI

What is Material Design

究竟什么是Material Design呢?

“设计是创造的艺术,我们的目标就是要满足不同的人类需要。人们的需要会随着时间发展,我们的设计,实践,以及理念也要随之提升。我们在自我挑战,为用户创造了一个可视化语言,它整合了优秀设计的经典原则和科学与技术的创新。这就是Material Design。” —— 关于Material Design,其亲爹谷歌是这么介绍的。

Material Design的设计风格如下图,其核心思想就是把物理世界的体验带进屏幕。去掉现实中的杂质和随机性,保留其最原始纯净的形态、空间关系、变化与过渡,配合虚拟世界的灵活特性,还原最贴近真实的体验,达到简洁与直观的效果。

Material Design设计风格

Material Design的设计原则如下:

  • 实体感就是隐喻(通过系统的动效和合理的空间利用去打造与众不同的触感);
  • 鲜明、形象、深思熟虑(制定了基础的平面设计规范,提升用户体验);
  • 有意义的动画效果(合理的有意义的动效可以吸引用户的注意力,并且维持整个系统的连续性体验);

对于Material Design就简单介绍到这里,由于本人不是做设计的,就不搁这白话了,全凭大家用心去感受,如果大家对Material Design感兴趣可以关注官方的文档及规范

麻溜滴,上DEMO

在我们的开发环境配置过程中,我们会用到node.js,so,没有npm的同学请自行装之。

请带上你的依赖包

首先在我们的A、B、C、D、E、F、G任意盘上创建demo项目文件夹,执行命令如下:

# 创建demo项目文件夹
mkdir material-ui
cd material-ui

# 初始化package.json文件
npm init

接下来安装依赖包,拥为Material-UI在编写时用到了ES2015的一些特性,所以在配置过程中我们会用到Babel( 一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境中执行)。我们还会用到webpack(作为模块加载器和打包工具),执行命令如下:

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

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

# 安装Babel转换器核心部分
npm install --save-dev babel-core babel-loader
 
# 安装Babel转换器的三个额外配置: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 中添加一个对象babel,与"dependencies"保持同级。如果不顺利的话,那么恭喜你,请再来一遍上述过程,与此同时面向西方开启跪拜模式吧。。。

package.json内容如下:

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

配置webpack

在我们项目根目录下新建webpack的配置文件webpack.config.js,其内容如下:

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'] 
        } ] 
    }
}

写一个AppBar

在项目根目录下新建index.html,并引入我们生成的bundle.js,内容如下:

<!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>

创建entry.js,其内容如下:

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,执行打包操作,执行成功后,命令显示如下:

命令行输出信息

现在可以看到目录下有了一个dist/bundle.js,打开index.html,效果如图所示:

HelloWorld

至此,我们利用Material-UI的AppBar组件实现了一个简单的页面,除此之外Material-UI还实现了很多实用的组件,并且支持我们修改组件的主题,内部样式、颜色等定制化操作。到这里大家应该对Material-UI有了初步的了解,如果想深入了解,还请参考其官网

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容