javascript - 我可以发布我在 ES 和谐风格 JavaScript 中导入的内容吗?

标签 javascript reactjs ecmascript-6

在一个ES Harmony风格的脚本中,我将在React中为不同的组件分解不同的风格,如下代码:

import React from 'react';

/** Modules */
import style from './main.css';

export class TableBody extends React.Component {
    constructor(props) {
    }

    componentDidMount() {
    }

    componentWillUnmount() {
        /** release style */
    }
}

有没有什么办法可以在componentWillUnmount方法中释放我之前导入的样式,使这个组件的样式不影响其他组件?

在问这个问题之前,我尝试过一些方法,比如使用delete或者给它赋值一个null对象,但是这两种方法都行不通。

最佳答案

如果您正在使用 CSS 模块webpack,您在 React 组件中导入的每个 CSS 文件都可以添加一个前缀或您喜欢的其他格式。

真实世界的例子将是这样的 class="ChatListItem__unread___249Kw"

除非你真的在你的 React 组件中使用 ChatListItem__unread___249Kw,否则很难影响其他组件。 (249Kw是一个hash码,生产环境下只能通过config保存。)

在 webpack 配置中配置 CSS Loader

  {
    test: /\.css$/,
    loader: 'style!css?modules&importLoaders=1&' +
    'localIdentName=[name]__[local]___[hash:base64:5]!postcss',
  },

React 组件及其 CSS 文件结构

React Component File Struc

并且可以重写导入CSS文件的方式

import React from 'react';

/** Modules */
import styles from './TableBody.css';

export class TableBody extends React.Component {
    constructor(props) {
    }

    componentDidMount() {
    }

    componentWillUnmount() {
        /** release style */
    }

    render () {
        return <div className={styles.theClassName}></div>
    }
}

关于javascript - 我可以发布我在 ES 和谐风格 JavaScript 中导入的内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40879116/

相关文章:

javascript - 从模块覆盖/修饰 ES6 类

javascript - 除了英语之外,还可以使用非英语字母字符 - React-Native

javascript - 返回错误值 json

reactjs - React 应用程序卡在 "Starting the development server"

node.js - Node Express 设置 cookie

javascript - 如何使用 nlapiLoadRecord 获取记录类型?

javascript - Ng2-Charts Linechart 仅显示前 2 个值

javascript - React 渲染毫无意义的 div 打破了我的 flexbox 风格

javascript - React、TransitionGroup、Velocity.js - 使路由过渡动画垂直对齐

javascript - 迭代对象数组 - *ngFor - Angular 6