摘要:配置做的小例子根据昨天的配置我们继续往下做,我们在做一个小例子,首先还是要接着昨天的继续往下配置安装完之后要下载编译并压缩后的和字体文件。
webpack配置react做的小例子
npm i bootstrap url url-loader style-loader css-loader --save
import React from "react"; import ReactDOM from "react-dom"; import TodoApp from "./components/TodoApp"; import "./css/bootstrap/dist/css/bootstrap.min.css"; ReactDOM.render(,document.getElementById("app"));
var path = require("path"); module.exports = { //devtool:"source-map", entry: "./app.js", output: { path:path.resolve(__dirname,"build"), publicPath:"/assets/", filename: "bundle.js" }, module: { rules: [ { test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader" }, { test: /.css$/, exclude: /node_modules/, loader: "style-loader!css-loader" }, { test: /.eot(?v=d+.d+.d+)?$/, loader: "file-loader" }, { test: /.(woff|woff2)$/, loader:"url-loader?prefix=font/&limit=5000" }, { test: /.ttf(?v=d+.d+.d+)?$/, loader: "url-loader?limit=10000&mimetype=application/octet-stream" }, { test: /.svg(?v=d+.d+.d+)?$/, loader: "url-loader?limit=10000&mimetype=image/svg+xml" } ] } }
import React from "react"; import TodoList from "./TodoList"; import TodoForm from "./TodoForm"; class TodoApp extends React.Component{ constructor(props){ super(props); this.ids=1; this.state={ todos:[] }; this.addItem=this.addItem.bind(this); this.deleteItem=this.deleteItem.bind(this); this.okItem=this.okItem.bind(this); } okItem(id){ this.state.todos.map(item=>{ if(item.id==id){ item.done=1; } return item; }); this.setState({ todos:this.state.todos }); } deleteItem(id){ let newtodos=this.state.todos.filter((item)=>{ return !(item.id==id) }); this.setState({ todos:newtodos }); } addItem(value){ this.state.todos.unshift( { id:this.ids++, text:value, time:(new Date()).toLocaleString(), done:0 } ) this.setState({ todos:this.state.todos }); } render(){ return (); } } export default TodoApp;
ToDo 你要做什么?
import React from "react"; import TodoItem from "./TodoItem"; class TodoList extends React.Component{ render(){ let todos=this.props.data; let todoItems=todos.map(item=>{ return}); return ( ); } } export default TodoList;
{todoItems} 内容 时间 状态 操作
import React from "react"; class TodoItem extends React.Component{ delete(){ this.props.deleteItem(this.props.data.id); } complete(){ console.log(this); this.props.okItem(this.props.data.id); } render(){ let {text,time,done,id}=this.props.data; return (); } } export default TodoItem; {text} {time} {done==0?"未完成":"完成"} 删除 完成
import React from "react"; class TodoForm extends React.Component{ tijiao(event){ event.preventDefault(); } add(event){ if(event.type=="keyup"&&event.keyCode!=13){ return false; } let txt=this.refs.txt.value; if(txt=="") return false; this.props.addItem(txt); this.refs.txt.value=""; } render(){ return(); } } export default TodoForm;
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/84395.html
摘要:使用做同构应用是用于开发数据不断变化的大型应用程序的前端框架,结合其他轮子例如和就可以开发大型的前端应用。然后客户端检测到这些已经生成的就不会重新渲染,直接使用现有的结构。 使用React做同构应用 React是用于开发数据不断变化的大型应用程序的前端view框架,结合其他轮子例如redux和react-router就可以开发大型的前端应用。 React开发之初就有一个特别的优势,就是...
摘要:所以前端工程师不仅仅是写好页面和做好兼容性。对前端工程师的技术能力也会带来考验。这里想要说的是,如果使用了,使用了服务端渲染,对于前端工程师的个人素质要求会比较高,因为需要处理很多服务端的问题。 背景 我们团队有个项目由于开发时间较长,且是前后端杂糅的开发方式,维护成本很高,在线上暴露的问题很多。而且因为对接了公司一百多条产品线,每天都会接到大量的客诉和产品线反馈的问题。2017年11...
摘要:例如允许我们在打包时将脚本分块利用浏览器缓存我们能够有的放矢的加载资源。文章的内容大体分为两个方面,一方面在思路制定模块分离的策略,另一方面从技术上对方案进行落地。我之前提到测试之下是什么样具体的场景并不重要。前言 随着前端代码需要处理的业务越来越繁重,我们不得不面临的一个问题是前端的代码体积也变得越来越庞大。这造成无论是在调式还是在上线时都需要花长时间等待编译完成,并且用户也不得不花额外的...
摘要:关于和,其实单纯问两者的区别,大家都知道,一个是开发依赖,一个是线上依赖。因为一开始的开发不规范,导致我随意乱装。。一个包可以再大点。脚手架已经实现了三分之一,现在是直接来作为脚手架,到最后效果应该是的形式,不过命令内容已经实现和。 前言:最近天天加班做新项目,Taro版的小程序,还要实现富文本加海报,踩了不少坑,下次专门开个坑说一下。 回到脚手架,说实话从头写一个,即便是参考crea...
摘要:前戏今年,对于我个人而言遭遇了三个重大的转折点。尽可能的把沟通成本用约定和文档降低。学习的这一年可以说年的学习,在上半年的精力,放在了技术上。而下半年则相反。 前戏 今年,对于我个人而言遭遇了三个重大的转折点。 15年9月大三休学创业,16年9月重新复学大三 在2016年4月顺利引进天使轮,公司从厦门集美区搬到了深圳南山区 16年底,我们正在准备接入A轮 16年与15年相比,总体来...
阅读 746·2021-09-22 16:01
阅读 2042·2021-08-20 09:37
阅读 1677·2019-08-30 15:54
阅读 1671·2019-08-30 15:44
阅读 738·2019-08-28 18:23
阅读 2982·2019-08-26 12:17
阅读 990·2019-08-26 11:56
阅读 1525·2019-08-23 16:20