webpack+react(入个小门)

最近刚换工作,一直想学一个比较实用比较火的mv*框架,刚开始学的ng,然而发现并不适合我这个渣渣- - 很尴尬,又转向了vue,vue的确比ng好入门一点,可是要是手动的打包(管理)你写的vue和html、css等好像很麻烦的样子,不仅我这么认为,很多大牛也是这么实现的,比如利用gulp,grunt,webpack,我也是借此机会吧这几个比较火的前端工具都熟悉了个遍,最后经过自己的摸索和咨询大神,选择了webpack+react(我也不知道为啥- - ).下面是关于webpack+react的入门小知识:

首先,你需要具备node基础,npm基础,es6基础,这些仅仅需要入个门就可以按照顺序附各个入门链接:

node:GitHub - alsotang/node-lessons: 《Node.js 包教不包会》

npm:npm 入门 - 基础使用 - 推酷       (最好把package.json里面的json对象里面的各个属性名的意义都搞一遍,以后方便理解)

es6:ECMAScript 6 扫盲 - 梦骑士的博客 - 博客频道 - CSDN.NET

如果你讲上面的都看了一遍,有了一点印象,那么咱们接着往下走。

到了这里,估计你也已经安装好了node,那么我们在安装webpack: npm -g --save-dev webpack(安装好的npm插件会在node目录下的node_modules文件夹下)

webpack是为了将写好的react的打包到你想要引入的JS文件,这里,这个JS文件是build.js

然后,假设咱们webpack+react的项目目录是这样的,如下图:

项目目录

文件目录结构

app是我们的react组件文件夹,index.jsx是主组件,将来会用webpack将index.jsx编译成build文件夹下面的build.js,下面的node_modules文件夹是你在该项目目录下面下载的node插件,index.html就不用多说了,package.json我个人理解就是一个队该项目的解释,里面有一些重要的东西,可以查看此网址:package.json字段全解 - 清箫的专栏 - 博客频道 - CSDN.NET,这里就不再赘述。webpack.config.js是使用webpack必须的一个配置文件,用来配置你运行webpack时候将要执行的东东。(上面的build文件夹和里面的build.js在没有运行webpack的时候是没有的,这里就不去除了)

下面来撸代码,由于咱们这个入门用的是es6所以,需要利用babel来转译一下,下载babel-preset-es2015,还需要下载一些东西,这里我就不复述了,直接上图:


需要的插件

这里没用其他的插件,例如自动生成html,webpack-dev-server,因为就是简简单单的入门,搞多了不太好的样子

接下来是webpack.config.js的配置,如下图:


webpack.config.js


这里面也可以require("path")来是路径变得更方便,不过还是为了简单,就不写了


解释一下:entry是webpack编译的入口路径,也就是说你想编译哪一个文件,就把哪一个文件的写到这里面,

                output是webpack编译后的文件的存放地址,path是路径,filename是文件名称,记得要加后缀哦

                module是webpack用到的加载器(也就是工具),是一个数组,里面每一项都是一个json对象,其中test填写一个正则表达式,匹配后缀,这里匹配的是以.jsx或者.js结尾的文件,loader使用到的插件,query是插件的子功能。(这里我是这么理解的,不对的地方望指出)

好了,简单的webpack.config.js写好了,让我们来写react吧,先附图,如下:


react_jsx


里面的react和react-dom是必须的,用es的模块命令import....from来引入,之前的package.json已经下好了这两个插件,下面的是es6中的类,其实就是es5原型的语法糖,子类App继承了react的component,里面的es6语句就不再赘述。

render里面写的就是react的jsx语句直接return一个jsx语句,将html和js混写在一起的模板。this.props指向的是App插件的name属性的值。然后在html页面中的body里创建一个div,最后一句ReactDOM.render 是 React 的最基本方法,用于将模板转为 HTML 语言,并插入指定的 DOM 节点。第一个参数是模板,第二个参数是要插入的'目的地'。好啦简单的react写好了,下面我们在该项目下打开CLI,然后输入webpack,如果cli显示如下图所示内容,那么恭喜你,一个小小小小的webpack+react的demo写好了:



cli



那么build文件已经自动生成了,并且里面有了一个build.js文件,打开看看,是不是很神奇,然后创建在html内将build.js引入,用浏览器打开html,就会有如下图所示页面:



页面


本人实力有限,文笔不行,不过到了这里,你可能大概对webpack+react有了一个小小的认识了,接下来,让我们一起继续努力学习吧,加油哈。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,160评论 7 35
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,687评论 7 110
  • 最近在学习 Webpack,网上大多数入门教程都是基于 Webpack 1.x 版本的,我学习 Webpack 的...
    My_Oh_My阅读 8,178评论 40 247
  • 构建一个小项目——FlyBird,学习webpack和react。(本文成文于2017/2/25) 从webpac...
    布蕾布蕾阅读 16,816评论 31 98
  • 滨海夜雨,,我心萋萋。 在微信群里看到一条消息,假设你现在到了80岁老态龙钟一事无成,躺在病床上奄奄一息,回顾一生...
    皮大侠阅读 392评论 0 0