博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
material(一)
阅读量:4966 次
发布时间:2019-06-12

本文共 7722 字,大约阅读时间需要 25 分钟。

1037363-20190430154347640-1182977285.gif

项目目录如下
1037363-20190430155048314-1165052633.png
逻辑代码

import React from 'react';import PropTypes from 'prop-types';import Button from '@material-ui/core/Button';import Dialog from '@material-ui/core/Dialog';import DialogTitle from '@material-ui/core/DialogTitle';import DialogContent from '@material-ui/core/DialogContent';import DialogContentText from '@material-ui/core/DialogContentText';import DialogActions from '@material-ui/core/DialogActions';import Typography from '@material-ui/core/Typography';import { withStyles } from '@material-ui/core/styles';import withRoot from '../withRoot';const styles = theme => ({  root: {    textAlign: 'center',    paddingTop: theme.spacing.unit * 20,  },});class Index extends React.Component {  state = {    open: false,  };  handleClose = () => {    this.setState({      open: false,    });  };  handleClick = () => {    this.setState({      open: true,    });  };  render() {    const { classes } = this.props;    const { open } = this.state;    return (      
Super Secret Password
1-2-3-4-5
Material-UI
example project
); }}Index.propTypes = { classes: PropTypes.object.isRequired,};// 这些是什么export default withRoot(withStyles(styles)(Index));

index.js

//serviceWorker.jsimport React from 'react';import ReactDOM from 'react-dom';import Index from './pages/index';import * as serviceWorker from './serviceWorker';// 直接render的是indexReactDOM.render(
, document.querySelector('#root'));// If you want your app to work offline and load faster, you can change// unregister() to register() below. Note this comes with some pitfalls.// Learn more about service workers: http://bit.ly/CRA-PWAserviceWorker.unregister();
// This optional code is used to register a service worker.// register() is not called by default.// This lets the app load faster on subsequent visits in production, and gives// it offline capabilities. However, it also means that developers (and users)// will only see deployed updates on subsequent visits to a page, after all the// existing tabs open on the page have been closed, since previously cached// resources are updated in the background.// To learn more about the benefits of this model and instructions on how to// opt-in, read http://bit.ly/CRA-PWAconst isLocalhost = Boolean(  window.location.hostname === 'localhost' ||    // [::1] is the IPv6 localhost address.    window.location.hostname === '[::1]' ||    // 127.0.0.1/8 is considered localhost for IPv4.    window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/),);export function register(config) {  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {    // The URL constructor is available in all browsers that support SW.    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);    if (publicUrl.origin !== window.location.origin) {      // Our service worker won't work if PUBLIC_URL is on a different origin      // from what our page is served on. This might happen if a CDN is used to      // serve assets; see https://github.com/facebook/create-react-app/issues/2374      return;    }    window.addEventListener('load', () => {      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;      if (isLocalhost) {        // This is running on localhost. Let's check if a service worker still exists or not.        checkValidServiceWorker(swUrl, config);        // Add some additional logging to localhost, pointing developers to the        // service worker/PWA documentation.        navigator.serviceWorker.ready.then(() => {          console.log(            'This web app is being served cache-first by a service ' +              'worker. To learn more, visit http://bit.ly/CRA-PWA',          );        });      } else {        // Is not localhost. Just register service worker        registerValidSW(swUrl, config);      }    });  }}function registerValidSW(swUrl, config) {  navigator.serviceWorker    .register(swUrl)    .then(registration => {      registration.onupdatefound = () => {        const installingWorker = registration.installing;        if (installingWorker == null) {          return;        }        installingWorker.onstatechange = () => {          if (installingWorker.state === 'installed') {            if (navigator.serviceWorker.controller) {              // At this point, the updated precached content has been fetched,              // but the previous service worker will still serve the older              // content until all client tabs are closed.              console.log(                'New content is available and will be used when all ' +                  'tabs for this page are closed. See http://bit.ly/CRA-PWA.',              );              // Execute callback              if (config && config.onUpdate) {                config.onUpdate(registration);              }            } else {              // At this point, everything has been precached.              // It's the perfect time to display a              // "Content is cached for offline use." message.              console.log('Content is cached for offline use.');              // Execute callback              if (config && config.onSuccess) {                config.onSuccess(registration);              }            }          }        };      };    })    .catch(error => {      console.error('Error during service worker registration:', error);    });}function checkValidServiceWorker(swUrl, config) {  // Check if the service worker can be found. If it can't reload the page.  fetch(swUrl)    .then(response => {      // Ensure service worker exists, and that we really are getting a JS file.      const contentType = response.headers.get('content-type');      if (        response.status === 404 ||        (contentType != null && contentType.indexOf('javascript') === -1)      ) {        // No service worker found. Probably a different app. Reload the page.        navigator.serviceWorker.ready.then(registration => {          registration.unregister().then(() => {            window.location.reload();          });        });      } else {        // Service worker found. Proceed as normal.        registerValidSW(swUrl, config);      }    })    .catch(() => {      console.log('No internet connection found. App is running in offline mode.');    });}export function unregister() {  if ('serviceWorker' in navigator) {    navigator.serviceWorker.ready.then(registration => {      registration.unregister();    });  }}
//withRoot.jsimport React from 'react';import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';import purple from '@material-ui/core/colors/purple';import green from '@material-ui/core/colors/green';import CssBaseline from '@material-ui/core/CssBaseline';// A theme with custom primary and secondary color.// It's optional.const theme = createMuiTheme({  palette: {    primary: {      light: purple[300],      main: purple[500],      dark: purple[700],    },    secondary: {      light: green[300],      main: green[500],      dark: green[700],    },  },  typography: {    useNextVariants: true,  },});// 类似于appfunction withRoot(Component) {  function WithRoot(props) {    return (      
{/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
); } return WithRoot;}export default withRoot;

转载于:https://www.cnblogs.com/smart-girl/p/10796478.html

你可能感兴趣的文章
cookie session 和登录验证
查看>>
为mysql数据库建立索引
查看>>
语言-汉语-官话-中原官话-兖菏片:兖菏片
查看>>
HTML-参考手册: 画布
查看>>
杂项:MIS
查看>>
Node.js:全局对象
查看>>
6、python中的字符串
查看>>
String、StringBuffer与StringBuilder之间区别
查看>>
bash中常见环境变量env、set、export 、declare与bash漏洞原理
查看>>
Vue.js 子组件的异步加载及其生命周期控制
查看>>
数据库表结构导出sql语句
查看>>
C++库(Thrift)
查看>>
python问题记录
查看>>
linux基础知识
查看>>
实验三:Linux进程管理(HDU)
查看>>
学习站点
查看>>
20155228 2017-5-31 课堂测试:编写MyOD.java
查看>>
分支语句和循环语句(1)
查看>>
Ubuntu Git安装与使用
查看>>
Unity3D脚本编程--基本概念
查看>>