微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webpack+react+es6 嵌入已有项目

1.库安装包, npm install

{
  "name": "react-es6-webpack","version": "1.0.0","description": "","main": "index.js","author": "","license": "ISC","devDependencies": {
    "babel-core": "^6.7.2","babel-loader": "^6.2.4","babel-preset-es2015": "^6.6.0","babel-preset-react": "^6.5.0","css-loader": "^0.23.1"
  },"dependencies": {
    "react": "^15.5.4","react-dom": "^15.5.4"
  }
}
2. webpack.config.js
var webpack = require("webpack");

module.exports = {
    entry : __dirname + "/main.js",output : {
        path : __dirname + "/out",filename : "index.js"
    },module:{
        loaders :[
            {
                test: /\.js$/,exclude: /node_modules/,loader: 'babel-loader',query:
                {
                    presets:['react','es2015']
                }
            }
        ]
    },externals: {
        'jquery': 'window.$','react': 'React','react-dom': 'ReactDOM'
    },}
externals的目的不想打react的库一起打到index.js.
presets可以方便的是用es6的各种特性

3.组件

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

class AppComponent extends React.Component {
    render() {
        var list = [];
        for(var i = 0; i < 100000; i++){
            var ele = <h1>{i+1}:{this.props.data}</h1>;
            list.push(ele)
        }
        return <div>{list}</div>;
    }
}

window.renderList = function(list){
    ReactDOM.render(
        <AppComponent data={list}/>,document.getElementById('root')
    );
};
4.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <title></title>
        <Meta charset="UTF-8">
        <Meta name="viewport" content="width=device-width,initial-scale=1">
        <script src="https://cdn.bootcss.com/react/15.5.4/react.min.js"></script>
        <script src="https://cdn.bootcss.com/react/15.5.4/react-dom.min.js"></script>


    </head>
    <body>
        <div id="root" style="width: 400px;min-height:200px;float: left;">
        </div>
        <div style="float: left;">
            <button id="addBtn">添加</button>
            <button id="updateBtn">更新</button>
        </div>
        <script src="out/index.js"></script>
        <script>
            document.getElementById("addBtn").onclick = function(){
                renderList("hello react")
            };


            document.getElementById("updateBtn").onclick = function(){
                renderList("hello world")
            };
        </script>
    </body>
</html>
最后webpack编译即可

原文地址:https://www.jb51.cc/react/303888.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐