react+redux+webpack+git技术栈

  1 一、git bash here
  2 mdkr
  3 cnpm init -y
  4 ls -a
  5 ls -l
  6 ls -la隐藏的也可查看
  7 cat package.json
  8 二、npm
  9 npm i webpack-dev-server -g
 10 全局:任何目录运行
 11 本地:本地需要调用附带的插件
 12 npm list
 13 npm list -g
 14 npm uninstall supervisor -g 全局删除
 15 npm remove supervisor -g全局删除,彻底卸载,再安装
 16 npm i supervisor --save-dev||-D 开发依赖:项目上线不需要的,例如:babel、webpack
 17 npm i jquery -S项目依赖-----dependencies
 18 奇数非稳定版本
 19 cnpm info jquery
 20 升级---直接修改配置文件
 21 cnpm update
 22 ^表示第一个版本号不变后面取最高
 23 ~表示第一第二个约定好
 24 *取最新版本
 25 --------------------------------版本升级问题:删除后修改json,在安装,mac上可能可以
 26 npm outdated
 27 rm -rf强制删除所有
 28 npm cache clear清除缓存安装
 29 nrm ls npm源
 30 nrm test
 31 nrm use taobao  ----切换源
 32 npm脚本
 33 npm run dev
 34 三、git工具
 35 本地仓库
 36 远端仓库-remote
 37     gitLab/github---ssh
 38 主干发布、分支开发
 39 -----------------配置远程库---------------------------
 40 gitignore----不上传服务器的文件夹
 41 git config --global user.name
 42 git config --global alias.ci commit----- 起commit别名ci
 43 ---------------clone下来-------------------
 44 git clone ssh/https-----https公开自己代码
 45 git st状态
 46 ---------------查看状态run起来----------------------------------------
 47 git add .
 48 git ci -am "asds"添加
 49 git push
 50 .........................创建分支..................................
 51 git branch
 52 git branch name创建分支不切换
 53 git checkup -b name-2017-0223-bao-bugfix
 54 git co -b name-2017-0223-bao-bugfix创建分支并切换
 55 修改文件
 56 git ci -am "adsd"
 57 git push --set-upstream origin name分支上传
 58 ----------------------merge获取其他分支----------------------------------
 59 在本地创建多个分支
 60 git branch -r显示远端分支
 61 open index.html
 62 git co master------------主分支提交master
 63 git merge origin/name 分支提交后在master上merge,master与分支合并做修改,保存本地库
 64 git ci -am "merge-name"
 65 git push发布
 66
 67 git log查看历史版本
 68 $ git reset --hard 3628164
 69 ---------------------merge master-----------
 70 其他分支与master同步
 71 git checkout master----切换分支到master执行
 72 git pull----即可完成master更新同步
 73 git merge master??
 74 git rebase master-----保持与本地一致
 75 用rebase合并主干的修改,如果有冲突在此时解决
 76 ---------------------------------------------------
 77 git br -a可看到远端所有分支
 78 clone后新创建的分支拿到本地仓库方法:
 79 git fetch origin newname
 80 git br
 81 git co newname
 82 git br-----即可拿到
 83 open index.html
 84 --------------------------
 85 权限设置
 86 Collaborators:添加Add collaboator
 87 --------------总结----------------------
 88 管理员merge----开发人员pull即可看到项目进度!
 89
 90
 91 三、***********************webpack*************************
 92 1、commonJS
 93 2、require(‘./name‘),斜杠-----本文件夹
 94 require(‘name‘),-----node_modules里
 95
 96 ***********************布局*************************
 97 build--------编译后发布代码文件夹
 98 src-------------开发文件夹
 99     |---component_dev-------
100     |---script-------js
101     -----|---app.js
102     -----|---component---组件
103     -----|---redux
104             |----store.js
105         |---index.js
106     |---style---------css
107     |----index.ejs------模板改变也会生成新的hash值
108             <title><%= htmlWebpackPlugin.option.title%></title>
109 index.html
110 package.json
111 webpack.config.js
112 .git
113
114 css、js、html,其他例如第三库CDN
115 img呢?服务器?
116 ***********************webpack.json*************************
117 ‘script‘:{
118     "build":webpack-dev-server
119 }
120 ***********************webpack.config.js*************************
121 后端拿到html
122 前后端两个域名?run到一起
123 var webpack=require(‘webpack‘)
124 var htmlWebpackPlugin=require(‘html-webpack-plugin‘)--------引入插件
125 var ExtractTextPlugin=require(‘extract-text-webpack-plugin‘)
126 var openBrowserPlugin=require(‘open-browser-webpack-plugin‘)
127 mudule.exports={
128     entry:{--------------可单页面入口。可多入口文件
129         page1:‘./src/app1.js‘,
130         page2:‘./src/app2.js‘
131     },
132     output:{----------------js文件和其他生成的文件
133         path:__dirname+‘/build‘,------__dirname物理路径,后面build没有点,
134         //filename:‘app_[hash].js‘---上线用
135         filename:‘app.js‘---开发用
136         //filename:‘[name]_[hash].js‘-----------生成多个js
137     },
138     devServer:{
139         contentBase:‘./build‘-----------访问目录下的index.html--把index.html放到build里
140         host:"localhost"---------域名
141         port:‘9000‘----端口
142         historyApiFallback:false  -------------是否使用H5的historyApi
143         proxy:{-----------代理
144             ‘/api‘:{----------------有api即认为访问后端,例如‘/api/list.php‘
145                 target:‘http://localhost:3000‘---地址栏有/api即跳到:3000
146                 pathRewrite:{‘^/api‘,‘‘}------------干掉‘./api‘
147                 changeOrigin:true---------------------跨域,非本地跨域
148             }
149
150         }
151
152     },
153     module:{
154         loaders:[
155 //            {-->非抽离声明
156 //                test:/\.css$/,------css打包到js
157 //                loader:‘style-loader!css-loader‘
158 //            },
159             {
160                 test: /\.css$/,
161                 loader: ExtractTextPlugin.extract({
162                   fallback: ‘style-loader‘,
163                   use: ‘css-loader‘
164                 })
165             },
166 //             {
167 //                test:/\.scss$/,------css打包到js
168 //                  exclude: /node_modules/,--------------刨除哪个!!!
169 //                loader:‘style-loader!css-loader!sass-loader‘
170 //            }, -->非抽离声明
171             {
172                 test:/\.scss$/,
173                 loader:ExtractTextPlugin.extract({--------抽离声明
174                     fallback:‘style-loader‘,------------------------解析最后一个loaderextract,这个案例是style,解析的是css
175                     use:‘css-loader!sass-loader‘----------------不要重复声明style-loader
176                 })
177             },
178               {
179                 test: /\.js$/,
180                 exclude: /node_modules/,--------------刨除哪个!!!
181                 loader: ‘react-hot-loader!babel-loader‘---------------react热替换,厉害了
182               }
183         ]
184     },
185     plugin:[
186         new htmlWebpackPlugin({--------------html文件自动生成插件实例化,有自己的默认模板
187             filename:‘index.html‘,-----------------输出的文件名,会生成带有hash值的js
188             template:‘./src/index.ejs‘,------------模板文件
189             title:‘豆瓣电影‘
190         }),
191         new ExtractTextPlugin({-------------------解析抽离css并会在index.html加link标签
192             filename:‘app_[hash].css‘,----------------可加版本号
193             disable:false,-------true关闭
194             allChunks:true---------------入口文件
195         }),
196         new webpack.optimize.UglifyJsPlugin({
197             compress:{----------------压缩,最后上线需要一次
198                 warning:false-------是否显示错误信息,false不显示
199             },
200             output:{
201                 comments:false----------是否需要注释,false不需要
202             }
203         }),
204         new openBrowserPlugin({ url: ‘http://localhost:8080‘ })------------------webpack 启动后自动打开浏览器插件!!!!1!!厉害了
205     ],
206     externals:{------------------抽离js第三方类库
207         "react":"window.React",----------配置后不会打包react,手动打包即可,包特别大
208         "react-dom:"window.ReactDOM"
209         "react-router":"window.ReactRouter"
210         "redux":"window.Redux"
211         ‘react-redux‘:‘widow.ReactRedux‘
212     }
213 }
214
215 ELEMENT解析与源码不同
216 源码---是后台ng、rg之后的
217
218 css/js版本控制,服务器缓存原来版本----回滚---使用构建工具
219 哈希值hash-----根据内容算法生成来css、js控制版本
220
221 npm install html-webpack-plugin---------------------html自动生成插件
222 npm i sass-loader -D
223 npm react-hot-loader -D---------------------react热替换
224 npm i babel-preset-react -D----------------react预设
225 npm i extract-text-webpack-plugin -D-----------------抽离文本插件
226 npm i react-dom -S--------------项目依赖
227 npm i open-browser-webpack-plugin---------------
228 require---Es5
229 import from ---Es6
230
231 1、const Index=‘sd‘
232 export {Index}
233 import {Index} from index.js
234 2、const Index=‘sd‘
235 export {Index as defult}
236 import Index from index.js---------------Index花括号就不用了
237 ***********************babel编译器安装*************************
238 babel-core---------------babel-loader调用
239 babel-loader------------编译
240 babel-preset-es2015 -D-----------编译es6
241
242 react-hot-loader!babel-loader----------------------react热替换
243
244
245 ***********************babel*************************
246
247 jsx------babel解析,webpack直接可以识别Es6语法,不过jsx还是需要babel来解析,babel还可以解析Es7位es5
248
249 {
250     "preset":["es2015","react","stage-0"]
251 }
252 ***********************packge.json*************************
253
254 "babel-polyfill":"^6.23.0"---------------------低版本andrio不支持则降低版本,很重要!!
255 四、***********************mock数据*************************
256 npm i json-server -g-----------安装
257 json-server src/mock.js--------启动服务,启动mock.js文件
258 mock.js
259
260 var list = require(‘./list.json‘)
261 module.exports = function() {
262   return {
263     ‘list.php‘: list
264   }
265 }
266 访问localhost:3000
267
268 在fetch里fetch("/api/kind2.php").then(res=>res.json()).then(res=>{})
269 --------------------------------
270  componentDidMount() {
271     fetch(‘/api/list.php‘)
272     .then(response=>response.json())
273     .then(res=>{
274       // console.log(res);
275       this.setState({
276         name: <div>{res.name}</div>
277       })
278     })
279   }
280
281 五、reset.css公共样式
282
283
284
285 六、搭建页面结构
286 andriod
287 ios
288 woff、ttf-------------多次设置font-face会merge并不会覆盖
289 //CDN简写
290 @font-face{
291     font-family:yofont;
292     src:url(/icofont/iconfont.woff) format("woff"),
293     url(/iconfont/iocnfont.ttf) format(‘truetype‘)
294 }
295 1像素线、、、、、、、、、、、、、、、
296 空元素相对定位
297 伪元素:绝对定位
298 根据dpr缩放
299 七、react-router
300
301 "react-router": "^3.0.2"--------------用4.0版本会没有ReactRouter.min.js,引用react-router.min.js会报Cannot read property ‘location‘ of undefined
302 引用ReactRouter.min.js
303
304 react-router.min.js-------------一般用后端开发
305
306 <Link to=‘‘/>
307 <Router>
308 <IndexRoute component={}/>
309 <Route path=‘‘ component={}/>
310 </Router>
311 抽离后要在ejs里引文件,否则找不到
312 父组件获得子组件的参数------------------
313 子组件通过this.props.onClickHandler.bind(this,"abc")
314     -------------onClickHandler是父组件定义的方法,abc是子组件的参数,通过函数传给父组件
315 也可以-----------子组件设置this.state={data:‘abc‘},,父组件在设置ref="abc",在ditmount中this.refs.state.data
316 子组件获得父组件的属性方法----------父组件设置属性与方法,子组件this.props.name获得
317 八、API
318 mock数据
319 share.baidu.com----------------------百度分享
320 mern----------------------react-cli
321 九、组件YO
322 npm i babel-preset-stage-0 -D
323 十、redux
324 onEnter事件可以检测路由切换
325 组件渲染从内向外
326 Didmountupdate中也可以检测路由切换
327 Index中包含自己及切换的子路由
328 cnpm i react-redux -S
329 *************************************十、redux***********************************************
330 拷贝redux,react-deux
331 ejx要添加
332 connect ----------react-redux
333 connect(mapStateToProps,mapDispatchToprops)(Index)
334
335
336 路由
337 引入{Provider}
338 {store}
339 <Provider store={store}>
340
341
342
343 </Provider>
344 某个组件状态需要共享
345 某个状态需要在任何地方都能拿到
346 一个组件需要改变全局状态
347 一个组件需要改变另一个组件的状态
348 **************************************YO框架**********************************************
349 base:设置html里的font-size--------------------YO框架以640的iphone5做的,
350 iphone6,1vw=0.26666666px=100/375
351 **************************************history*************************
352 browserhistory:h5的,浏览器就不会有#了
353 browserhistory.goBack();goFoward()
354 改用browserhistory,用事件定义跳转,hashhistory  Link方法就不适用了
355 ******************************路由传参***************************************
356 path="/list/:type"-------------设置动态路由
357 取type方法:this.props.params
358 ************************touch-action**************************
359 touch-action:none
360
361 手机里无webpack,无法调用线上数据
362 1、放json里,
363 2、放服务器,装ngix,方向代理
364 3、放数据库。
365
366
367 ************************nginx**************************
368 http://nginx.org/en/download.html下载地址
369 homebrew安装moc ------------
370
371
372 start nginx
373 nginx -s stop
374
375  gzip  on压缩传输
376 pwd
377
378
379 nginx的使用
380 1、修改conf/nginx.conf
381 把nginx.conf里的server下的全部注释掉,(35-79行)
382 把gizp on解注释,添加  include ../conf.d/*.conf;
383 2、建conf.d文件夹,建工程名的配置文件,配置如下:
384 server{
385     listen 80;----一般都是80
386     server_name localhost;
387     root E:/lianlianLife/dev/build;
388 }
389 3、启动nginx,访问localhost即可
390 ************************nginx**************************
391 ************************前后端联调**************************
392 Postman
393
394 HostAdmin App----C:\Windows\System32\drivers\etchosts-------host文件位置
395 127.0.0.1 ----------- localhost-------域名解析--先走本地
396 ip计算识别,一个ip可以有多个域名
397 如何清除DNS缓存
398 src="http://www.douban.com/libs/"------index.html配置
399 ping www.baidu.com得到网页ip
400 ip+域名设置--------------得到远端
401 ipconfig/flushdns-----------刷新DNS解析缓存
402 跨域:
403 cors、
404 jsonp
405 window.name
406 nginx方向代理
407
408 location /api{
409         proxy_pass http://localhost:3000
410     }
411
412 modal---组件
413 stuo nginx
414 nginx杀掉进程的方法----taskkill /fi "imagename eq nginx.EXE" /f,可以杀死名字为
415 nginx.EXE的所有进程
416 http://www.cnblogs.com/CoreXin/p/5566607.html
417
418
419 http://blog.csdn.net/u010977147/article/details/53489160l两个参数解决
时间: 2024-08-04 05:23:43

react+redux+webpack+git技术栈的相关文章

使用 webpack + react + redux + es6 开发组件化前端项目

因为最近在工作中尝试了 webpack.react.redux.es6 技术栈,所以总结出了一套 boilerplate,以便下次做项目时可以快速开始,并进行持续优化. 项目结构规划 每个模块相关的 css.img.js 文件都放在一起,比较直观,删除模块时也会方便许多.测试文件也同样放在一起,哪些模块有没有写测试,哪些测试应该一起随模块删除,一目了然. build |-- webpack.config.js # 公共配置 |-- webpack.dev.js # 开发配置 |-- webpac

react redux 深入剖析--干货

## 技术栈: react + redux + webpack + react-router + ES6/7/8 + immutable ## 运行项目(nodejs 6.0+) ``` git clone https://github.com/bailicangdu/react-pxq.git cd react-pxq npm i 或者运行 yarn(推荐) npm start npm run build (发布)``` ## 说明 > 本项目主要用于理解 react 和 redux 的编译方

Redux+React Router+Node.js全栈开发

详情请交流  QQ  709639943 01.Java深入微服务原理改造房产销售平台 02.跨平台混编框架 MUI 仿豆瓣电影 APP 03.Node.js入门到企业Web开发中的应用 04.Redux+React Router+Node.js全栈开发 05.Java秒杀系统方案优化 高性能高并发实战 06.企业级刚需Nginx入门,全面掌握Nginx配置+快速搭建高可用架构 07.快速上手Linux 玩转典型应用 08.全面系统讲解CSS 工作应用+面试一步搞定 09.Java Spring

利用 React/Redux/React-Router 4/webpack 开发大型 web 项目时如何按需加载

如何设计一个大型 web 项目? React + webpack 如何按需加载? React + React-Router 4 + webpack 如何按需加载? React + Redux + React-Router 4 + webpack 如何按需加载? 实录提要: bundle-loader 和 Webpack 内置的 import() 有什么区别? 按需加载能否支持通过请求后台数据,动态配置页面的的应用场景? 参与过几个 React 项目,被依赖包搞的晕晕的,不知道该怎么选择? 什么包

重谈react优势——react技术栈回顾

react刚刚推出的时候,讲react优势搜索结果是几十页. 现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文. 今天,再谈一遍react优势,WTF? React的收益有哪些?React的优势是什么?react和vue.angularJS等其它框架对比优势? 而作为总结回顾.react在工程实践中,带来哪些思想上的质变? virtual dom虚拟DOM概念 它并不直接对DOM进行操作,引入了一个叫做virtual dom的概念,安插

React技术栈系列—基础01

React简介 于2013年来自Facebook开源项目. 和Angular不一样的是,React并不是一个完整的MVC/MVVM框架,它只专注于提供清晰.直接的View视图层解决方案.它的功能全部以构建组件视图为核心,并提供类似控制器的函数接口和生命周期函数.所以在React中么有控制器.没有服务.没有指令.没有过滤器等等这些. Virtual DOM 是React中的一个非常重要的概念,在日常开发中,前端需要将后端的数据呈现到界面中,同事还要能对用户的操作提供反馈,并且作用到UI上,这些操作

webpack+react+redux+es6

一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入门教程   redux middleware 详解   Redux研究 React 入门实例教程 webpack学习demo NPM 使用介绍 三.工程搭建 之前有写过 webpack+react+es6开发模式 ,文章里介绍了一些简单的配置,欢迎访问. 1.可以npm init, 创建一个新的工程

webpack+react+redux+es6开发模式

一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入门教程   redux middleware 详解   Redux研究 React 入门实例教程 webpack学习demo NPM 使用介绍 三.工程搭建 之前有写过 webpack+react+es6开发模式 ,文章里介绍了一些简单的配置,欢迎访问. 1.可以npm init, 创建一个新的工程

react案例-&gt;新闻移动客户端--(react+redux+es6+webpack+es6的spa应用)

今天分享一个react应用,应在第一篇作品中说要做一个react+redux+xxx的应用.已经做完一部分,拿出来分享.github地址为:点我就可以咯~ 这里实现了一个新闻移动站的spa.本来想写pc端的,但是比较懒,而且因为主要是react的项目,关于css和布局的细节就是糊弄人的了.T.T,这里只说关于这个项目的js部分. 这里的功能很简单,有一下几点: 1,按”心“排序 当比上一个多了,就会排到前面. 2.评论部分 新闻的评论部分类似qq空间的评论 当然,也可以点击新闻回复的哦. ===