试着用React写项目-利用styled-components解决样式问题

转载请注明出处:王亟亟的大牛之路

啰嗦之前先案例,会渐渐丰富前端的知识点 https://github.com/ddwhan0123/Useful-Open-Source-Android

昨天用webpack把我们的项目跑了起来,没看的可以看下,比较有条理性:http://blog.csdn.net/ddwhan0123/article/details/55095661



今天我们就要写react的内容了,首先先要用npm来下载相关需要的依赖库

分别是react和react-dom

npm install --save react react-dom

当你下完react相关后就要解决es6和jsx的支持,这部分交由Babel解决

npm install --save-dev babel-cli babel-preset-react

npm install --save-dev babel-cli babel-preset-es2015

因为用Webpack构建项目,所以css 相关内容也可以像加载普通js一样处理,只需要加入几个加载库

npm install css-loader style-loader --save-dev

下完之后在配置文件里添加支持就好

var path = require(‘path‘);
var config = {
  entry: path.resolve(__dirname, ‘app/main.js‘),
  output: {
    path: path.resolve(__dirname, ‘build‘),
    filename: ‘bundle.js‘
  },
  module: {
    loaders: [
      {
        test: /\.jsx?$/,
        exclude: /(node_modules|bower_components)/,
        loader: ‘babel-loader‘,
        query: {
          "presets": ["es2015", "react"]
        }
      }, {
        test: /\.css$/,
        loader: ‘style!css‘
        }
    ]
  }
};

module.exports = config;

七大姑八大姨都配置好就可以干活了,我们写个简单的<H1>试试

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8"/>
  </head>
  <body>
    <div id="root"></div>
    <h1>
      hi
    </h1>
    <script src="http://localhost:8080/webpack-dev-server.js"></script>
    <script src="bundle.js"></script>
  </body>
</html>

接下来看下入口js

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;

export default class Hello extends React.Component {
  render() {
    return (
          <H1>hi all</H1>
    );
  }
}
ReactDOM.render(
  <Hello />,
  document.getElementById(‘root‘)
);

跑下来就是在页面上打了个hi all这里就不截图了。



手写css不难,但是很烦,因为会瞎眼睛,找了找各种封装的库,找了个靠谱的,推荐给大家

https://github.com/styled-components/styled-components

npm install --save styled-components

下载也是走 npm,下完就好,作者提供了一个供大家试玩的网站,地址如下:

http://www.webpackbin.com/V1VNoINA-

对html的那些标签进行了封装,使用它就跟使用默认的html一样,整个css架构都跟着组件走,而不需要你从中调度。

具体支持哪写可以看https://github.com/styled-components/styled-components/blob/master/src/utils/domElements.js

大致长这样

使用起来也非常简单,我们把我们的demo加以修改

import React from ‘react‘;
import ReactDOM from ‘react-dom‘;
import styled from ‘styled-components‘;

const Input = styled.input`
  font-size: 1.25em;
  padding: 0.5em;
  margin: 0.5em;
  color: palevioletred;
  background: papayawhip;
  border: none;
  border-radius: 3px;

  &:hover {
    box-shadow: inset 1px 1px 2px rgba(0,0,0,0.1);
  }
`;
const H1 = styled.h1`
  background-color: #a1a
`;

export default class Hello extends React.Component {
  render() {
    return (
      <div>
          <Input placeholder="@mxstbr" type="text" />
          <H1>hi all</H1>
      </div>
    );
  }
}
ReactDOM.render(
  <Hello />,
  document.getElementById(‘root‘)
);

改完后长这样

使用完全就像使用常规html标签一样非常简便,加以简单的设置就可以达到任意你想要的效果

这一篇内容比较简单,主要是开工前的准备第二期,但是组织好了好工具才会 事半功倍吧?

时间: 2024-11-10 15:48:53

试着用React写项目-利用styled-components解决样式问题的相关文章

试着用React写项目-利用react-router解决跳转路由等问题(二)

转载请注明出处:王亟亟的大牛之路 这一篇还是继续写react router相关的内容,废话之前先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android (总有你须要的东西) 上一篇讲到我们能够利用 Router来实现嵌套跳转等效果,可是那些都是静态的,这一篇着重于写一些动态跳转内容 Link 之前也有提及.旧时代我们经常使用的跳转形式就是<a/>,React丰富的api也提供给我们相似的实现.那就是Link,我们用一个样例来看一下

试着用React写项目-利用react-router解决跳转路由等问题(三)

转载请注明出处:王亟亟的大牛之路 本来想一下子把路由的接下来的内容都写完的,但是今天白天开了会,传了些代码打了个包,就被耽搁了 这一篇来讲一下 IndexLink和 onlyActiveOnIndex的一些问题 老习惯先安利一下:https://github.com/ddwhan0123/Useful-Open-Source-Android 例子的源码都传git了,源码地址:https://github.com/ddwhan0123/ReactDemo 知识来源:https://github.c

试着用React写项目-利用Webpack搭环境

转载请注明出处:王亟亟的大牛之路 最近都赋闲,然后前些天开了个会就是关于"不加班就得死"的死命令,作为抵制加班的先头兵,我感觉我时日无多是时候加快武装自己的速度不然吃土都不配了,就在这个大条件下捡起我丢在地上的React. ok,那既然知道要做什么了,就要考虑用什么来发布项目,这里第一考虑到Webpack 那Webpack能干什么? 官方对他的解释很简单 This small tutorial will guide you through a simple example. 我们用We

【腾讯Bugly干货分享】React Native项目实战总结

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 "8小时内拼工作,8小时外拼成长"这是大家共同的理想.除了每天忙于工作外,我们都希望能更多地区吸收领域内的新知识与新技能,从而走向人生巅峰. Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师.每周都会举行嘉宾分享,话题讨论等活动. 上一期我们邀请了腾讯SNG工程师&qu

团队项目利用Msbuild自定义Task实现增量发布

最近一直在做自动部署工具,主要利用到了Msbuild的自定义Task,通过Task我们可以自定义编译.部署过程减少人工直接干预.Msbuild的详细用法,可以去园子里搜一下,有很多的基础教程,这里就不赘述了,还是集中说一下增量发布的问题. 增量主要涉及到三部分内容,程序.配置和静态文件(例如CSS.JS等),程序的增量比较简单,通过版本对比或者TFS的修改记录便可以查询出被修改过的程序集.配置文件增量大致有两种,全增量和部分增量.全增量也很简单,直接把修改过的配置文件复制到发布包就OK了:部分增

React 实践项目 (二)

React在Github上已经有接近70000的 star 数了,是目前最热门的前端框架.而我学习React也有一段时间了,现在就开始用 React+Redux 进行实战! React 实践项目 (一)本次实践代码 部署好的网址 上回说到用React写了一个带Header的首页,我们这次实践就使用Redux进行状态管理 Rudex 应用中所有的 state 都以一个对象树的形式储存在一个单一的 store 中.惟一改变 state 的办法是触发 action,一个描述发生什么的对象.为了描述 a

React 实践项目 (四)

React在Github上已经有接近70000的 star 数了,是目前最热门的前端框架.而我学习React也有一段时间了,现在就开始用 React+Redux 进行实战! 上回说到使用Redux-saga 管理 Redux 应用异步操作,应用还是只有一个首页.现在开始构建一个新的投稿页面并使用 React-Router 进行路由管理. React 实践项目 (一)React 实践项目 (二)React 实践项目 (三)React 实践项目 (四) - 首先我们来构建投稿页面 创建 src/co

React 实践项目 (五)

React在Github上已经有接近70000的 star 数了,是目前最热门的前端框架.而我学习React也有一段时间了,现在就开始用 React+Redux 进行实战! React 实践项目 (一)React 实践项目 (二)React 实践项目 (三)React 实践项目 (四)React 实践项目 (五) 这次我们把应用部署到服务器上. 项目到现在麻雀虽小五脏俱全,为了提高我们写代码的积极性,自然是选择部署到服务器上在小伙伴面前秀一波了.部署 React 应用也是非常方便简单的. 打包应

Expo大作战--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等

简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo依赖,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981 [之前我写过一些列关于expo和rn入门配置的东i西,大家可以点击这里查看:从零学习rn开发] 相关文章: Expo大作战--什么是expo,如何安装expo clinet和xde,xde如何