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

資訊專欄INFORMATION COLUMN

翻譯 Meteor React 制作 Todos - 08 - 模板UI的狀態

dcr309duan / 3449人閱讀

摘要:組件有一個名叫狀態的特殊變量。將會異步地更新狀態屬性,然后讓組件重新渲染。使其可以在為時,過濾我們已完成的任務。因為我們已經有數據在客戶端的里了,所以添加額外的總數并不會向服務器再次申請數據。

在組件狀態中存儲臨時數據

在這個步驟,我們會在為應用的客戶端添加數據過濾特性,這樣用戶就可以通過點擊’確認選框‘來查看當前進行的任務。我們會去學習如何僅在客戶端使用React組件狀態來存儲臨時模板

首先,我們需要在我們的App組件中,添加’確認選框‘


Todo List

你可以看到要在this.state.hideCompleted上的讀取屬性。React組件有一個名叫state(狀態)的特殊變量(field)。你可以在state中存儲運算后的組件數據,我們需要在組件中去定義一個叫做getInitialState的方法來初始化這個變量

// 在App.jsx文件中
// 這個mixin將會使得getMeteorData方法正常執行
mixins: [ReactMeteorData],

// 添加開始
getInitialState() {
  return {
    hideCompleted: false
  }
},
// 添加結束

// 從Tasks集合中讀取數據并傳送到this.data.tasks中
getMeteorData() {
  return {

你可以在事件監聽中通過從一個叫做this.setState的方法來更新this.statethis.setState將會異步地更新狀態屬性,然后讓組件重新渲染。

// 在App.jsx文件中

  React.findDOMNode(this.refs.textInput).value = "";
},

// 添加開始
toggleHideCompleted() {
  this.setState({
    hideCompleted: ! this.state.hideCompleted
  });
},
// 添加結束

render() {
  return (
    

現在我們得更新getMeteorData方法。使其可以在this.state.hideCompletedtrue時,過濾我們已完成的任務。

// 在App.jsx文件中 

// 從Tasks集合中讀取數據并傳給this.data.tasks
getMeteorData() {

    // 修改開始
  let query = {};

  if (this.state.hideCompleted) {
    // If hide completed is checked, filter tasks
    query = {checked: {$ne: true}};
  }

  return {
    tasks: Tasks.find(query, {sort: {createdAt: -1}}).fetch()
  };
    // 修改結束

},

renderTasks() {

現在,如果你確認了任務已完成,任務列表中將會只顯示那些沒有被完成的任務。

再來個特性:顯示未完成任務的數量

我們已經編寫了語句來過濾已完成的任務,我們也可以使用相同的語句去展示沒有被確認完成的任務的數量。要完成這個特性,我們要從getMeteorData的方法中獲取總數,然后再render方法中添加一行。因為我們已經有數據在客戶端的MiniMongo里了,所以添加額外的總數并不會向服務器再次申請數據。

// 在App.jsx文件的getMeteorData的return改成這樣
return {
      tasks: Tasks.find(query, {sort: {createdAt: -1}}).fetch(),
      incompleteCount: Tasks.find({checked: {$ne: true}}).count()
    };
// 在App.jsx的render方法的return 附近,添加這么一句
return (
  
// 修改開始

Todo List ({this.data.incompleteCount})

// 修改結束

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

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

相關文章

  • 翻譯 Meteor React 制作 Todos - 10 - 方法安全性

    摘要:在上,最好的方法就是通過聲明方法。這些方法叫做還有,這將會替換執行的方法。我們做這些是為了開啟一個我們稱之為樂觀的的特性。客戶端向服務器端發送一個在安全環境下的請求。 方法的安全性 在這個步驟之前,這款應用的任何用戶都可以修改數據庫的任何部分,在一個非常有意思的小項目或者演示項目中可能已經不錯了,但是任何一個真實的應用都需要對這些數據進行權限控制。在Meteor上,最好的方法就是通過聲...

    Steven 評論0 收藏0
  • 翻譯 Meteor React 制作 Todos - 09 - 添加用戶賬戶

    摘要:為了開啟這套賬戶系統和界面,我們需要去添加相關的包。使用,而不是在文件加入開始這段代碼只會在客戶端執行加入結束添加用戶關聯功能現在你已經可以創建賬戶并登錄你的應用程序了。例如包含了已登陸用戶的用戶名。 添加多用戶賬戶 Meteor帶來了一套賬戶系統然后順便還帶了用戶界面來讓你可以在幾分鐘之內在你的應用中添加多用戶功能 目前,這套UI組件使用Blaze作為默認的UI引擎,在未來,可能會以...

    levius 評論0 收藏0
  • 翻譯 Meteor React 制作 Todos - 02 - 組件

    摘要:用定義視圖組件在中,視圖組件是被使用定義的。你的組件可以有任何你想要的方法。組件可以接收來自于父組件通過屬性傳過來的數據。因為本教程專注于和,所以你可以拷貝下面的代碼到文件中。嘿嘿,來添加上吧只要把改名成就好了 在 React 組件中定義視圖 在開始編寫React視圖庫之前,要先添加react包,這個包囊括了你在Meteor應用中開始運行React所需要所有東西。這個React庫自己可...

    wuyangnju 評論0 收藏0
  • 翻譯 Meteor React 制作 Todos - 11 - 發布訂閱

    摘要:通過發布訂閱模式過濾數據現在我們已經把應用中比較敏感的代碼放到了一些方法里面,我們還需要學習安全故事的另一半內容了。當在客戶端被調用時傳入發布器名稱,客戶端將會從發布器訂閱所有的數據。這個按鈕應該只是給任務的所有者來顯示。 通過發布訂閱模式過濾數據 現在我們已經把應用中比較敏感的代碼放到了一些方法里面,我們還需要學習Meteor安全故事的另一半內容了。到現在為止,我們一直是假設整個整個...

    用戶83 評論0 收藏0
  • 翻譯 Meteor React 制作 Todos - 01 - 創建應用

    摘要:閑扯在翻譯之前我還是要簡要介紹一下,這是一款跨時代的框架。后來開始使用動態的腳本語言,比如后來以此構成了框架。最為出名的自然是。通過來傳遞數據,在本地起這種事情使得開發進入了新的階段。如果你覺得我翻譯的很爛,來給我說吧郵件地址 閑扯 在翻譯之前我還是要簡要介紹一下Meteor,這是一款跨時代的框架。真的,完全沒有騙你。 一開始的網站是純靜態頁面搭建的。 后來開始使用動態的腳本語言,比如...

    VishKozus 評論0 收藏0

發表評論

0條評論

閱讀需要支付1元查看
<