国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

webpack配置react做的小例子

baiy / 1818人閱讀

摘要:配置做的小例子根據昨天的配置我們繼續往下做,我們在做一個小例子,首先還是要接著昨天的繼續往下配置安裝完之后要下載編譯并壓縮后的和字體文件。

webpack配置react做的小例子

根據昨天的配置我們繼續往下做,我們在做一個小例子,首先還是要接著昨天的繼續往下配置
npm i bootstrap url url-loader style-loader css-loader --save
安裝完之后要下載bootstrap編譯并壓縮后的 CSS、JavaScript和字體文件。不包含文檔和源碼文件。然后配置在自己的app.js文件下
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")); 
都配置完之后再接著在webpack.config.js里面添加語句
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" }
      ]
    }
}
都配置完之后接下來就做我們小例子的內容吧
TodoApp.js
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 (
            




ToDo 你要做什么?


); } } export default TodoApp;
TodoList.js
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 (
            
                    {todoItems}
                
內容 時間 狀態 操作
); } } export default TodoList;
TodoItem.js
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 (
           
               {text}
               {time}
               {done==0?"未完成":"完成"}
               
                   刪除
                   
                            完成
                   
                
           


        );
    }
}

export default TodoItem;
TodoForm.js
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;
都寫完之后就可以看看我們的index.html,html里的代碼沒有變動,和昨天的都是一樣

    
都完成之后就來看一下我們的結果,當點擊添加的時候回添加上信息,直接按Enter也會添加消息,當點擊刪除就會刪除已在的消息,點擊完成的時候未完成的信息就會顯示成完成

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/84395.html

相關文章

  • 使用React做同構應用

    摘要:使用做同構應用是用于開發數據不斷變化的大型應用程序的前端框架,結合其他輪子例如和就可以開發大型的前端應用。然后客戶端檢測到這些已經生成的就不會重新渲染,直接使用現有的結構。 使用React做同構應用 React是用于開發數據不斷變化的大型應用程序的前端view框架,結合其他輪子例如redux和react-router就可以開發大型的前端應用。 React開發之初就有一個特別的優勢,就是...

    ymyang 評論0 收藏0
  • 我是如何使用React+Redux構建大型應用的

    摘要:所以前端工程師不僅僅是寫好頁面和做好兼容性。對前端工程師的技術能力也會帶來考驗。這里想要說的是,如果使用了,使用了服務端渲染,對于前端工程師的個人素質要求會比較高,因為需要處理很多服務端的問題。 背景 我們團隊有個項目由于開發時間較長,且是前后端雜糅的開發方式,維護成本很高,在線上暴露的問題很多。而且因為對接了公司一百多條產品線,每天都會接到大量的客訴和產品線反饋的問題。2017年11...

    canopus4u 評論0 收藏0
  • 深入理解 Webpack 打包分塊(下)

    摘要:例如允許我們在打包時將腳本分塊利用瀏覽器緩存我們能夠有的放矢的加載資源。文章的內容大體分為兩個方面,一方面在思路制定模塊分離的策略,另一方面從技術上對方案進行落地。我之前提到測試之下是什么樣具體的場景并不重要。前言 隨著前端代碼需要處理的業務越來越繁重,我們不得不面臨的一個問題是前端的代碼體積也變得越來越龐大。這造成無論是在調式還是在上線時都需要花長時間等待編譯完成,并且用戶也不得不花額外的...

    pingan8787 評論0 收藏0
  • 從零開始開發一個react腳手架(五)

    摘要:關于和,其實單純問兩者的區別,大家都知道,一個是開發依賴,一個是線上依賴。因為一開始的開發不規范,導致我隨意亂裝。。一個包可以再大點。腳手架已經實現了三分之一,現在是直接來作為腳手架,到最后效果應該是的形式,不過命令內容已經實現和。 前言:最近天天加班做新項目,Taro版的小程序,還要實現富文本加海報,踩了不少坑,下次專門開個坑說一下。 回到腳手架,說實話從頭寫一個,即便是參考crea...

    gekylin 評論0 收藏0
  • 毫無色彩的二哲和他的巡禮之年

    摘要:前戲今年,對于我個人而言遭遇了三個重大的轉折點。盡可能的把溝通成本用約定和文檔降低。學習的這一年可以說年的學習,在上半年的精力,放在了技術上。而下半年則相反。 前戲 今年,對于我個人而言遭遇了三個重大的轉折點。 15年9月大三休學創業,16年9月重新復學大三 在2016年4月順利引進天使輪,公司從廈門集美區搬到了深圳南山區 16年底,我們正在準備接入A輪 16年與15年相比,總體來...

    Alex 評論0 收藏0

發表評論

0條評論

baiy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<