React實現聊天機械人

2021-07-22 16:07:48 字數 1467 閱讀 5754

用react實現了乙個聊天機械人,結合使用fetch工具對網路資料進行讀取,這些資料由圖靈api提供。

需要註冊乙個圖靈帳號(然後建立機械人,拿到api位址及apikey,就ok了。

廢話不多說,一起來看**:

class

fetchdemo

extends

react.component

} //input的onchange繫結事件

handledata(e) )

} //自定義函式,處理傳送資料及返回的網路資料的儲存操作

sendmessage() else)

//鎖定當前環境

var that = this

//使用fetch工具

var func = fetch('' + message, ).then(function(response) ).then(function(detail) , () => ))

})this.state.meg = ''

}} render() >

div>

div>

div>)

)}div>

"input" value= onchange= />

"button" onclick=>傳送

div>

div>

)}}

以上**的實現都是比較簡單的,需要特別說明的是refs,它的使用方法如下:

class

demo

extends

react.component

render()

}

這是因為,在react中,為了安全(防止xcc等),乙個元件類中的render()方法返回的其實並不是真正的dom(所以render()裡面的也不是真正的dom節點),它返回的是一棵最終會渲染成html的react元件樹。那麼,當你需要在某個dom節點做什麼的時候,就鬱悶了。。。

但是,機智的facebook已經幫你想好解決方法啦,那就是使用refs。在render()方法中,你可以像上面一樣,在標籤(如等)及元件裡使用ref對這個標籤或元件進行定位,接著,在元件類定義的方法裡,使用reactdom.finddomnode(this.refs.refname)就可以拿到已經渲染成html、且被定位了的該節點,然後,你想在該節點做什麼(額,剩下就是你自己的事了)。。。

其次,在demo中,我們使用的fetch工具返回的是乙個promise物件,不了解的可以戳阮兄-promise物件。

好啦,大公告成,效果如下(傳送訊息按鈕被rerun遮得差不多了,鬱悶…要和小機械人聊天的話,一定不要戳錯按鈕哦):

height="585" scrolling="no" src="" allowfullscreen="true" width="100%'">

聊天機械人

我你好!小愛同學 小愛你好,很高興認識你!charset utf 8 css document 休息一會 sleep 1 獲取 使用者傳送的 訊息 可選 後端 對於 使用者發過來的 時候 是否 使用 可選 根據 傳送 過來的 訊息 返回 不同的內容 messagelist array 床前明月光,有...

機械人聊天軟體c C 聊天機械人

例項簡介 c 聊天機械人 例項截圖 核心 3181078聊天機械人 原始碼必讀.pdf 聊天機械人 1.ico 聊天機械人 1.ico form1.designer.cs form1.cs form1.resx program.cs properties assemblyinfo.cs resour...

聊天機械人ELIZA

1 在 自然語言理解 這本書的緒論中曾分析了聊天機械人eliza的設計機理,表明這是一種語言變換的技巧,而不是真正的 自然語言理解 午間休息時檢索了一下,找到了乙個它的連線 它並不如書中所舉的例子那樣的 聰明 也許因為這是第乙個聊天機械人,以及它並沒有真正採取 自然語言理解 的技術有關。下面是筆者與...