成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

React學(xué)習(xí)筆記3:用es2015(ES6)重寫(xiě)CommentBox

selfimpr / 3761人閱讀

摘要:新搭建的個(gè)人博客,本文地址學(xué)習(xí)筆記用重寫(xiě)在一開(kāi)始的時(shí)候配置中我們就加入了的支持,就是下面的配置,但之前的學(xué)習(xí)筆記都使用的完成,所以專門(mén)作一篇筆記,記錄使用完成創(chuàng)建相關(guān)文件修改,增加該入口文件修改,引入該文件做個(gè)簡(jiǎn)單的測(cè)試,看下瀏覽器全部用來(lái)

新搭建的個(gè)人博客,本文地址:React學(xué)習(xí)筆記3:用es2015(ES6)重寫(xiě)CommentBox
在一開(kāi)始的時(shí)候webpack配置中我們就加入了es2015的支持,就是下面的配置,但之前的學(xué)習(xí)筆記都使用的es5完成,所以專門(mén)作一篇筆記,記錄使用es6完成CommentBox

query: {
  presets: ["es2015","react"]
}

1、創(chuàng)建相關(guān)文件

touch src/commentEs6.js
//修改webpack,增加該入口文件
  entry:{
    "index":"./src/index.js",
    "comment":"./src/comment.js",
    "commentEs6":"./src/commentEs6.js",
  },
//修改build/index.html,引入該文件
  

2、做個(gè)簡(jiǎn)單的測(cè)試,看下瀏覽器

//require全部用import來(lái)完成
import React from "react";
import ReactDom from "react-dom";
//es6支持類,通過(guò)類繼承完成組件的開(kāi)發(fā)
class CommentBox extends React.Component {
    render () {
        return 
Hello World
} } //渲染 ReactDom.render( ,document.getElementById("content") )

3、直接貼出完整修改后的代碼

import React from "react";
import ReactDom from "react-dom";
import marked from "marked"
import $ from "jquery"

class CommentBox extends React.Component {
    constructor(props){
        super(props)
        //state 初始化直接在構(gòu)造函數(shù)完成
        this.state = {data:[]}
    }
    //函數(shù)的書(shū)寫(xiě)方式也發(fā)生了變化
    loadCommentsFromServer(){
        //還不太明白,總之this到了ajax中指向的對(duì)象就發(fā)生了變化
        var url = this.props.url
        $.ajax({
            url:url,
            dataType:"json",
            cache:false,
            //利用箭頭函數(shù)傳參,可以少去了bind this
            success:(data) => {
                this.setState({data: data})
            },
            error:(xhr,status,err) => {
                console.log(url,status,err.toString())
            }
        })
    }
    handleSubmitComment(data){
        var url = this.props.url
        $.ajax({
            url:url,
            type:"POST",
            data:data,
            dataType:"json",
            cache:false,
            success:(data) => {
                this.setState({data:this.state.data.concat(data)});
            },
            error:(xhr,status,err) => {
                console.log(this.props.url,status,err.toString())
            }
        })
    }
    componentDidMount(){
        this.loadCommentsFromServer()
        //setTimeout(this.loadCommentsFromServer,2000)
    }

    render() {
        return (
            

Comments

) } } class CommentList extends React.Component{ constructor(props) { super(props) } render(){ var commentNodes = this.props.data.map(function(comment){ return ( {comment.text} ) }); return (
{commentNodes}
) } } class Comment extends React.Component { constructor(props) { super(props) } rawMarkup(){ var rawMarkup = marked(this.props.children.toString(),{sanitize:true}) return {__html:rawMarkup} } render(){ return (

{this.props.author}

) } } class CommentForm extends React.Component{ constructor(props) { super(props) this.state = {author:"",text:""} } handleAuthorChange(event){ this.setState({author:event.target.value}) } handleTextChange(event){ this.setState({text:event.target.value}) } handleSubmit(event){ event.preventDefault(); var author = this.state.author.trim() var text = this.state.text.trim() if(!text||!author) { return; } this.props.onSubmitComment({author:author,text:text}); this.setState({author:"",text:""}) return false; } render(){ return (
) } } ReactDom.render( ,document.getElementById("content") )

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/78580.html

相關(guān)文章

  • React學(xué)習(xí)筆記2:React官方CommentBox實(shí)踐

    摘要:瀏覽器看效果效果顯示效果就是瞎比比我不聽(tīng)瞎比比解析后的文本直接被顯示在頁(yè)面上,并沒(méi)有被瀏覽器解析,這是為了防止被攻擊而作的保護(hù)措施。 新搭建的個(gè)人博客,本文地址:React學(xué)習(xí)筆記2:React官方CommentBox實(shí)踐所有的操作是繼續(xù)上一個(gè)學(xué)習(xí)筆記,參考的是React官方的CommentBox,不過(guò)不是100%按照其實(shí)現(xiàn)。參考:https://facebook.github.io/...

    VPointer 評(píng)論0 收藏0
  • react組件通信實(shí)現(xiàn)表單提交

    摘要:組件通信實(shí)現(xiàn)表單提交昨晚做了一個(gè)的例子,主要實(shí)現(xiàn)的是提交表單實(shí)現(xiàn)評(píng)論的功能,在做之前先簡(jiǎn)單介紹一下。并稱為前端大框架,就目前來(lái)看,盡管發(fā)布了也在今年月份發(fā)布了,更不在話下,大家要是想學(xué)習(xí)的話可以去官網(wǎng)學(xué)習(xí)。 react組件通信實(shí)現(xiàn)表單提交 昨晚做了一個(gè)react的例子,主要實(shí)現(xiàn)的是提交表單實(shí)現(xiàn)評(píng)論的功能,在做之前先簡(jiǎn)單介紹一下React。 showImg(https://segment...

    LoftySoul 評(píng)論0 收藏0
  • 學(xué)習(xí)React系列1-React-tutorial全解析

    摘要:例子全解析近些時(shí)間一直在關(guān)注,關(guān)于如何學(xué)習(xí)可以參照鏈接的文章自行制定計(jì)劃。千里之行,始于足下。此外,輸出的內(nèi)容要解析為,而在默認(rèn)情況下,基于預(yù)防攻擊的考慮,對(duì)輸出的內(nèi)容是不解析為的。 React-tutorial例子全解析 Talk is cheap,Show me the code 近些時(shí)間一直在關(guān)注React,關(guān)于如何學(xué)習(xí)React可以參照鏈接的文章自行制定計(jì)劃。千里之行,始于足下...

    SnaiLiu 評(píng)論0 收藏0
  • React學(xué)習(xí)筆記1:環(huán)境搭建

    摘要:新搭建的個(gè)人博客,本文地址學(xué)習(xí)筆記環(huán)境搭建本文的書(shū)寫(xiě)環(huán)境為,之后會(huì)補(bǔ)充下的差異創(chuàng)建學(xué)習(xí)目錄初始化項(xiàng)目根據(jù)相關(guān)提示完善信息,入口文件安裝相關(guān)包,并且使用也就是支持,需要包,因?yàn)槲抑白鰝€(gè)一些相關(guān)項(xiàng)目,所以部分包已經(jīng)全局安裝,比如等等,大家 新搭建的個(gè)人博客,本文地址:React學(xué)習(xí)筆記1:環(huán)境搭建 本文的書(shū)寫(xiě)環(huán)境為mac,之后會(huì)補(bǔ)充windows下的差異 1、創(chuàng)建學(xué)習(xí)目錄 mkdir l...

    Sourcelink 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<