webpack使用原生js和react分别搭建项目

  • 原生js:
    a. head.jsx:
    function head(){
    var head = document.createElement(‘div‘)
    head.setAttribute(‘class‘,‘head‘)
    head.innerHTML = "head"
    return head
    }
    module.exports = head

    b. table.jsx:

    function table(){
    var table = document.createElement(‘table‘)
    table.setAttribute(‘class‘,‘table‘)
    var thead = document.createElement(‘thead‘)
    var tbody = document.createElement(‘tbody‘)
    var tdh = document.createElement(‘td‘)
    var tdb = document.createElement(‘td‘)
    var tnh = document.createTextNode(‘title‘)
    var tnb = document.createTextNode(‘body‘)
    tdh.appendChild(tnh)
    tdb.appendChild(tnb)
    thead.appendChild(tdh)
    tbody.appendChild(tdb)
    table.appendChild(thead)
    table.appendChild(tbody)
    return table
    }
    module.exports = table

    c. foot.jsx:

    function foot(){
    var foot = document.createElement(‘div‘)
    foot.setAttribute(‘class‘,‘foot‘)
    foot.innerHTML = "foot"
    return foot
    }
    module.exports = foot

    d. test.less:

    .color(@color;@background){
    color:@color;
    background:@background;
    }
    .table(){
    border-collapse:collapse;
    border:1px solid black;
    padding:1vh 1vw;
    }
    .head{
    .color(red,yellow);
    }
    .table{
    .table();
    }
    .foot{
    .color(white,black);
    }

    e. index.js:

    var head = require(‘./static/jsx/head.jsx‘)
    var table = require(‘./static/jsx/table.jsx‘)
    var foot = require(‘./static/jsx/foot.jsx‘)
    require(‘./static/less/test.less‘)
    document.body.appendChild(head())
    document.body.appendChild(table())
    document.body.appendChild(foot())

    f. index.html:

    <!doctype html>
    <html>
    <head>
        <title>hello</title>
    </head>
    <body>
        <script src="bundle.js"></script>
    </body>
    </html>

    g. 效果:

  • react:
    a. head.jsx:
    var React = require(‘react‘)
    var CreateReactClass = require(‘create-react-class‘)
    var head = CreateReactClass({
    render:function(){
        return(
                <div class="head">head</div>
            )
    }
    })
    module.exports = head

    b. table.jsx:

    var React = require(‘react‘)
    var CreateReactClass = require(‘create-react-class‘)
    var table = CreateReactClass({
    render:function(){
        return(
                <table class="table">
                    <thead>
                        <td>head</td>
                    </thead>
                    <tbody>
                        <td>body</td>
                    </tbody>
                </table>
            )
    }
    })
    module.exports = table

    c. foot.jsx:

    var React = require(‘react‘)
    var CreateReactClass = require(‘create-react-class‘)
    var foot = CreateReactClass({
    render:function(){
        return(
                <div class="foot">foot</div>
            )
    }
    })
    module.exports = foot

    d. test.less:

    .color(@color;@background){
    color:@color;
    background:@background;
    }
    .table(){
    border-collapse:collapse;
    border:1px solid black;
    padding:1vh 1vw;
    }
    .head{
    .color(red,yellow);
    }
    .table{
    .table();
    }
    .foot{
    .color(white,black);
    }

    e. index.js:

    var React = require(‘react‘)
    var ReactDom = require(‘react-dom‘)
    var CreateReactClass = require(‘create-react-class‘)
    var Head = require(‘./static/jsx/head.jsx‘)
    var Table = require(‘./static/jsx/table.jsx‘)
    var Foot = require(‘./static/jsx/foot.jsx‘)
    require(‘./static/less/test.less‘)
    var App = CreateReactClass({
    render:function(){
        return(
                <div>
                    <Head/>
                    <Table/>
                    <Foot/>
                </div>
            )
    }
    })
    ReactDom.render(
        <App/>
        ,
        document.getElementById(‘app‘)
    )

    f. index.html:

    <!doctype html>
    <html>
    <head>
        <title>hello</title>
    </head>
    <body>
        <div id="app"></div>
        <script src="bundle.js"></script>
    </body>
    </html>

    g. 效果:

  • 原文地址:http://blog.51cto.com/12173069/2103785

    时间: 2024-07-30 20:42:31

    webpack使用原生js和react分别搭建项目的相关文章

    基于 Webpack 4 和 React hooks 搭建项目

    面对日新月异的前端,我表示快学不动了??. Webpack 老早就已经更新到了 V4.x,前段时间 React 又推出了 hooks API.刚好春节在家里休假,时间比较空闲,还是赶紧把 React 技术栈这块补上. 网上有很多介绍 hooks 知识点的文章,但都比较零碎,基本只能写一些小 Demo .还没有比较系统的,全新的基于 hooks 进行搭建实际项目的讲解.所以这里就从开发实际项目的角度,搭建起单页面 Web App 项目的基本脚手架,并基于 hooks API 实现一个 react

    基于webpack的Vue.js开发环境快速搭建

    1. 安装node node下载地址 2. 安装淘宝 NPM 镜像命令地址 3. 安装vue # 全局安装 vue-cli cnpm install -g vue-cli 4. 创建一个基于 "webpack" 模板的新项目 # 创建一个项目文件夹,在文件夹下shift + 右键,选择在此处打开cmd vue init webpack 5. 安装依赖 # 安装依赖 cnpm install #安装完毕后,在项目路径下多出了依赖包. 6. 运行项目 #运行项目 运行成功,默认8080 端

    webpack+babel+ES6+react环境搭建

    webpack+babel+ES6+react环境搭建 步骤: 1 创建项目结构 注意: 先创建一个项目目录  react  这个名字自定义,然后进入到这个目录下面 mkdir app //创建app目录 用来存放项目源文件 mkdir dist // 创建dist目录 用来存放打包好的文件 touch .gitignore //创建.gitignore 用来添加git 忽略的文件 touch webpack.config.js //创建webpack的配置文件 cd app //进入到app目

    基于webpack和vue.js搭建开发环境

    前言 在对着产品高举中指怒发心中之愤后,真正能够解决问题的是自身上的改变,有句话说的好:你虽然改变不了全世界,但是你有机会改变你自己.秉承着“不听老人言,吃亏在眼前”的优良作风,我还是决定玩火自焚. 问题所在 之前的项目总结为以下内容: 1.AMD模块规范开发,使用requirejs实现,使用rjs打包,最终导致的结果是,输出的项目臃肿,肿的就像一坨狗不理……不忍直视2.使用gulp进行打包,这一点貌似没有可吐槽的地方,毕竟都是被grunt折磨过来的……3.数据的渲染使用模板引擎,这就意味着你要

    基于webpack和vue.js搭建的H5端框架(其实主要用于Hybrid开发H5端框架,但是依然能够作为纯web端使用)

    人类的发展得益于对追求不断的提升,在能活着的基础上是否要活得潇洒一点,技术的发展亦如是.在公司作为一个最最最最最最最底层的搬砖码农,经历了两个版本的铸(zhe)炼(mo)之后,我痛下决心今后一定要:…………..一定要和产品惺(shi)惺(bu)相(liang)惜(li). 开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack2.Vue.js3.npm4.nodejs —- 这个就不给连接了,因为上面的连接都是在你实践的过程中要去不断访问的5

    webpack+react环境搭建,不必要再使用create-react-app来创建,随意配置更方便

    首先是配置文件package.json,里边包括所用到的babel以及关于react的一些依赖包. { "name": "service", "version": "0.1.0", "private": true, "dependencies": { "@antv/g6": "^1.2.1", "@babel/core": &q

    React.js实现原生js拖拽效果及思考

    一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖拽效果. 首先,其实拖拽效果的思路是很简单的.主要就是三个步骤: 1.onmousedown的时候,启动可拖拽事件,记录被拖拽元素的原始坐标参数. 2.onmousemove的时候,实时记录鼠标移动的距离,结合被拖拽元素第一阶段的坐标参数,计算并设置新的坐标值. 3.onmouseup的时候,关闭可拖拽事件

    再谈React.js实现原生js拖拽效果

    前几天写的那个拖拽,自己留下的疑问...这次在热心博友的提示下又修正了一些小小的bug,也加了拖拽的边缘检测部分...就再聊聊拖拽吧 一.不要直接操作dom元素 react中使用了虚拟dom的概念,目地就是要尽量避免直接操作dom元素,所以我们在对dom元素进行操作的时候需要注意,我之前为了获取form的参数就直接用了var dragBox=document.getElementById('form')去找dom,但是其实记录from的初始位置,可以在其子组件更新父组件参数的时候调用.即在MyF

    vue react 与原生 js jquery 渲染时间简单对比

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con