博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端进阶 -css的弱化与js的强化(11)
阅读量:6440 次
发布时间:2019-06-23

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

  hot3.png

web的三要素html, css, js在前端组件化的过程中,比如react,vue等组件化框架的运用,使html 的弱化与 js 的强化成为了一种趋势,而在这个过程中,其实还有另一种趋势也在慢慢形成:css 的弱化与 js 的强化

css in js理念,即摒弃的英文原有的用.css文件书写样式,而样式把写进js里面,这样就可以做到一个组件对应一个文件,一个文件便是一个组件。

1.支持的第三方库

  1. :仅支持react
  2. :仅支持react
  3. :仅支持react
  4. :仅支持react
  5. :仅支持react
  6. :仅支持react

更多第三方库可以参考。

书写方式

一般css in js的写法有两种:

  1. 使用es6的模板字符串
  2. 使用js对象 {}

2.1使用es6的模板字符串

,,都是采用的这种写法。

比如styled-components

import React from 'react';import styled from 'styled-components';// 创建一个使用 

标签的 React 组件const Title = styled.h1` font-size: 1.5em; text-align: center; color: palevioletred;`;// 创建一个使用
标签的
React 组件const Wrapper = styled.section` padding: 4em; background: papayawhip;`;// 就像正常的 React 组件一样,只不过他们都自带样式
Hello World, this is my first styled component!

比如emotion

import { css } from 'emotion';const app = document.getElementById('root');const myStyle = css`  color: rebeccapurple;`;app.classList.add(myStyle);

这种写法的好处是,通过编辑器插件和lint插件(如),就像写正常的css一样,有自动完成提示,错误提示,lint自动矫正等功能。

2.2使用js对象 {}

,,,,,,都是采用的这种写法。

比如radium

import Radium from 'radium';import React from 'react';import color from 'color';var styles = {  base: {    color: '#fff',    ':hover': {      background: color('#0074d9').lighten(0.2).hexString()    }  },  primary: {    background: '#0074D9'  },  warning: {    background: '#FF4136'  }};class Button extends React.Component {  render() {    return (          );  }}Button = Radium(Button);

比如aphrodite

import React, { Component } from 'react';import { StyleSheet, css } from 'aphrodite';const styles = StyleSheet.create({  red: {    backgroundColor: 'red'  },  blue: {    backgroundColor: 'blue'  },  hover: {    ':hover': {      backgroundColor: 'red'    }  },  small: {    '@media (max-width: 600px)': {      backgroundColor: 'red',    }  }});class App extends Component {  render() {    return 
This is red.
This turns red on hover.
This turns red when the browser is less than 600px width.
This is blue.
This is blue and turns red when the browser is less than 600px width.
; }}

这种写法的好处是,不需要es6的语法,对属性可以更方便的操作。

3.决定是否使用

如果你是喜欢把样式和组件分开书写,那么这种方式就可能不太适合你;如果你追求一个组件对应一个文件,一个文件便是一个组件,那就立马用上吧。

在这里给大家分享一下,我是一名5年前端工程师,自己建了一个q群:731771211 ,群里不停更新最新的教程和学习方法,加入一起学习与交流

 

转载于:https://my.oschina.net/zybc/blog/2206269

你可能感兴趣的文章
Linux TCP 链接状态
查看>>
类的属性、类的方法、类的内置方法
查看>>
Python序列类型
查看>>
再谈ThinkPHP
查看>>
Hibernate问题浅析
查看>>
出现访问apache资源直接下载php文件的解决办法-----yum 安装 php mysql
查看>>
七种Mysql表类型
查看>>
归并与归并排序
查看>>
linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理...
查看>>
spark 应用程序性能优化经验
查看>>
基于Zabbix IPMI监控服务器硬件状况
查看>>
Go语言之并发资源竞争
查看>>
GNS帧中继配置,帧中继环境搭建
查看>>
MySql 数据同步
查看>>
awk学习笔记(9) - 表达式
查看>>
版本号大小比较算法
查看>>
在linux日常工作中touch的用法
查看>>
linux
查看>>
SELF4j没什么具体大的报错异常
查看>>
Linux中grub使用技巧
查看>>