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

資訊專欄INFORMATION COLUMN

【全棧React】第8天: 屬性類型

codeKK / 3453人閱讀

摘要:在大多數情況下,我們期望這些是一種特定類型或一組類型也稱為或。例如,幾天前我們構建的組件接受一個稱為的屬性,我們期望它是一個字符串。必需類型可以通過在任意個屬性類型中附加中描述來將需要傳遞給一個組件根據需要設置是非常有用的。

本文轉載自:眾成翻譯
譯者:iOSDevLog
鏈接:http://www.zcfy.cc/article/3818
原文:https://www.fullstackreact.com/30-days-of-react/day-8/

我們正在考慮如何在今天重新使用React組件,這樣我們不僅可以在應用而且可以在團隊中共享我們的組件。

唷! 我們做了第二周(相對毫發)! 通過這一點,我們已經討論了React(propsstate,生命周期掛鉤函數,JSX等)的大部分基本特性。 在本節中,我們將看一下注解我們的組件。

PropTypes

您可能已經注意到我們在組件中使用了props 。 在大多數情況下,我們期望這些是一種特定類型或一組類型(也稱為objectstring)。 React提供了一種定義和驗證這些類型的方法,使我們能夠輕松暴露組件API。

文檔化不僅是好習慣,對于構建也是有益的reusable react components.

React.PropTypes對象導出一堆不同的類型,我們可以用它來定義組件的prop應該是什么類型的。 我們可以在ES6類風格的React prop中使用propTypes方法來定義它們:

class Clock extends React.Component {
  // ...
}

Clock.propTypes = {
  // key is the name of the prop and
  // value is the PropType
}

使用React.createClass() 形式, 我們定義一個propTypeskey
例如,我們可以將Clock組件的形式重寫為:

const Clock = React.createClass({
  proptypes: {}
}); 

從這個prop里面,我們可以定義一個對象,它具有一個prop的key作為我們定義的prop的名稱,它應被定義的類型(或類型)的一個值。

例如,幾天前我們構建的Header 組件接受一個稱為title 的屬性,我們期望它是一個字符串。 我們可以將其類型定義為字符串:

class Header extends React.Component {
  // ...
}

Header.propTypes = {
  title: React.PropTypes.string
}

React有很多類型可供選擇,在React.PropTypes 對象上導出,甚至允許我們定義一個自定義的對象類型。 看看可用類型的總體列表:

[](#basic-types)基本類型

React暴露了我們可以開箱即用的幾種基本類型。

類型 例子
String "hello" React.PropTypes.string
Number 10, 0.1 React.PropTypes.number
Boolean true / false React.PropTypes.bool
Function const say => (msg) => console.log("Hello world") React.PropTypes.func
Symbol Symbol("msg") React.PropTypes.symbol
Object {name: "Ari"} React.PropTypes.object
Anything "whatever", 10, {}

可以告訴React我們希望它傳遞_anything_可以使用React.PropTypes.node來呈現:

類型 例子
A rendererable 10, "hello" React.PropTypes.node
Clock.propTypes = {
  title: React.PropTypes.string,
  count: React.PropTypes.number,
  isOn: React.PropTypes.bool,
  onDisplay: React.PropTypes.func,
  symbol: React.PropTypes.symbol,
  user: React.PropTypes.object,

  name: React.PropTypes.node
}

我們已經看過如何使用props從父組件到子組件進行通信。 我們可以使用函數從子組件到父組件進行通信。 當我們想要操作一個子組件的父組件時,我們會經常使用這種模式。

集合類型

我們可以通過我們的props中的可迭代的集合。 當我們通過我們的活動通過一個數組時,我們已經看到了如何做到這一點。 要將組件的proptype聲明為數組,我們可以使用 React.PropTypes.array 注解。

我們也可以要求數組只能使用某種類型的對象 React.PropTypes.arrayOf([]).

類型 例子
Array [] React.PropTypes.array
Array of numbers [1, 2, 3] React.PropTypes.arrayOf([type])
Enum ["Red", "Blue"] React.PropTypes.oneOf([arr])

可以使用React.PropTypes.oneOfType([types])來描述可以是幾種不同類型之一的對象。

Clock.propTypes = {
  counts: React.PropTypes.array,
  users: React.PropTypes.arrayOf(React.PropTypes.object),
  alarmColor: React.PropTypes.oneOf(["red", "blue"]),
  description: React.PropTypes.oneOfType([
      React.PropTypes.string,
      React.PropTypes.instanceOf(Title)
    ]),
}
對象類型

可以定義需要某個特定類型的特定類型或實例的類型。

類型 例子
Object {name: "Ari"} React.PropTypes.object
Number object {count: 42} React.PropTypes.objectOf()
Instance new Message() React.PropTypes.objectOf()
Object shape {name: "Ari"} React.PropTypes.shape()
Clock.propTypes = {
  basicObject: React.PropTypes.object,

  numbers: React.PropTypes
    .objectOf(React.PropTypes.numbers),

  messages: React.PropTypes
    .instanceOf(Message),

  contactList: React.PropTypes.shape({
    name: React.PropTypes.string,
    phone: React.PropTypes.string,
  })
}
React類型

我們也可以通過React元素從父組件到子組件。 這對于構建模板和提供模板的定制非常有用。

類型 例子
Element </b></td> <td align="right"><b>React.PropTypes.element</b></td> </tr></tbody> </table> <pre>Clock.propTypes = { displayEle: React.PropTypes.element } </pre> <p>當我們使用_element_時,React希望我們能夠接受一個多帶帶的子組件。 也就是說,我們將無法傳遞多個元素。</p> <pre>// Invalid for elements <Clock displayElement={ <div>Name</div> <div>Age</div> }></Clock> // Valid <Clock displayElement={ <div> <div>Name</div> <div>Age</div> </div> }></Clock> </pre> <b>必需類型</b> <p>可以通過在_任意_個屬性類型中附加<b>.isRequired</b>中描述來將需要傳遞給一個組件:</p> <pre>Clock.propTypes = { title: React.PropTypes.name.isRequired, } </pre> <p>根據需要設置<b>prop</b>是非常有用的。當組件依賴于一個<b>prop</b>被它的父組件傳遞,如果沒有它將不會工作。</p> <b>自定義類型</b> <p>最后,還可以傳遞一個函數來定義自定義類型。 我們可以做一個單一屬性或驗證數組。 自定義函數的一個要求是,如果驗證確定_not_ 傳遞,則期望我們返回一個 <b>Error</b> 對象:</p> <table> <thead><tr> <th>類型</th> <th align="center">例子</th> <th align="right">類</th> </tr></thead> <tbody> <tr> <td>Custom</td> <td align="center">"something_crazy"</td> <td align="right"><b>function(props, propName, componentName) {}</b></td> </tr> <tr> <td>CustomArray</td> <td align="center">["something", "crazy"]</td> <td align="right"><b>React.PropTypes.arrayOf(function(props, propName, componentName) {})</b></td> </tr> </tbody> </table> <pre>UserLink.propTypes = { userWithName: (props, propName, componentName) => { if (!props[propName] || !props[propName].name) { return new Error( "Invalid " + propName + ": No name property defined for component " + componentName ) } } } </pre> <b>默認屬性</b> <p>rendered, so we can define a common title instead by setting it"s default prop value.有時,我們希望能夠為屬性設置默認值。 例如,我們昨天構建的<b>組件</b>可能不需要傳遞標題。 如果不是,我們仍然需要一個標題來渲染,所以我們可以通過設置它的默認支持值來定義一個通用的標題。</p> <p>要設置默認的prop值,我們可以在組件上使用<b>defaultProps</b>對象鍵。</p> <pre>Header.defaultProps = { title: "Github activity" } </pre> <pre> <p>當使用<b>React.createClass()</b> 形式時,我們可以定義一個名為<b>getDefaultProps()</b> 的對象鍵,該對象鍵將返回具有默認值道具的對象。</p> <pre>React.createClass({ getDefaultProps: () => ({ name: "Github activity" }) }) </pre> </pre> <p>呃,今天我們瀏覽了很多文檔。 使用組件的<b>propTypes</b> 和<b>defaultProps</b> 屬性構建可重用組件是一個好主意。 不僅可以使開發人員之間進行溝通變得更加容易,而且在離開組件幾天后我們也可以輕松回收。 接下來,我們將回到代碼,并開始將某些風格整合到我們的組件中。</p> </div> <div id="lvbtvjz" class="mt-64 tags-seach" > <div id="vhv5zzn" class="tags-info"> <a style="width:120px;" title="GPU云服務器" href="http://specialneedsforspecialkids.com/site/product/gpu.html">GPU云服務器</a> <a style="width:120px;" title="云服務器" href="http://specialneedsforspecialkids.com/site/active/kuaijiesale.html?ytag=seo">云服務器</a> <a style="width:120px;" title="javascript基礎教程第8版" href="http://specialneedsforspecialkids.com/yun/tag/javascriptjichujiaochengdi8ban/">javascript基礎教程第8版</a> <a style="width:120px;" title="js 獲取第一個屬性" href="http://specialneedsforspecialkids.com/yun/tag/js huoqudiyigeshuxing/">js 獲取第一個屬性</a> <a style="width:120px;" title="linux 8位數據類型" href="http://specialneedsforspecialkids.com/yun/tag/linux 8weishujuleixing/">linux 8位數據類型</a> <a style="width:120px;" title="工資項目屬性數據類型" href="http://specialneedsforspecialkids.com/yun/tag/gongzixiangmushuxingshujuleixing/">工資項目屬性數據類型</a> </div> </div> <div id="ptjpjzl" class="entry-copyright mb-30"> <p class="mb-15"> 文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。</p> <p>轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84671.html</p> </div> <ul class="pre-next-page"> <li id="7l5nvjh" class="ellipsis"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/84670.html">上一篇:【全棧React】第9天: 樣式</a></li> <li id="tlz7npr" class="ellipsis"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/84672.html">下一篇:【全棧React】第7天: 生命周期鉤子函數</a></li> </ul> </div> <div id="7lhnhf5" class="about_topicone-mid"> <h3 class="top-com-title mb-0"><span data-id="0">相關文章</span></h3> <ul class="com_white-left-mid atricle-list-box"> <li> <div id="bf77tvh" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/84665.html"><b>【<em>全棧</em><em>React</em>】<em>React</em> 30<em>天</em>教程索引</b></a></h2> <p class="ellipsis2 good">摘要:今天我們將討論創建組件的最終方案,即無狀態函數的純組件。今天我們正在研究一種處理提出的復雜數據的方法,稱為體系結構。第天部署介紹今天,我們將探討部署我們的應用所涉及的不同部分,以便外界可以使用我們的應用。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3758原文:https://www.fullstackreact.com/3...</p> <div id="lf7lxtf" class="com_white-left-info"> <div id="7h5bz5b" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-1451.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/14/small_000001451.jpg" alt=""><span id="rtlb5rh" class="layui-hide64">appetizerio</span></a> <time datetime="">2019-08-20 18:33</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="xbxphhh" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/84725.html"><b>【<em>全棧</em><em>React</em>】<em>第</em>17<em>天</em>: 客戶端路由</b></a></h2> <p class="ellipsis2 good">摘要:但是使用標記將告訴瀏覽器處理路由就像服務器端路由一樣。組件需要一個稱為的屬性指向要渲染的客戶端路由。發生這種情況的原因是響應路由器將渲染與路徑匹配的所有內容除非另有指定。屬性預計將是一個函數將在對象連同和路由配置時調用。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3815原文:https://www.fullstackrea...</p> <div id="hvxfhvx" class="com_white-left-info"> <div id="fr7r5hf" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-227.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/02/small_000000227.jpg" alt=""><span id="77vbtt7" class="layui-hide64">harriszh</span></a> <time datetime="">2019-08-20 18:35</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="9z5vdf5" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/87164.html"><b>【<em>全棧</em><em>React</em>】<em>第</em>22<em>天</em>: 測試簡介</b></a></h2> <p class="ellipsis2 good">摘要:我們將討論三種不同的軟件測試范例單元測試功能測試和集成測試。在中單元測試通常不需要瀏覽器可以快速運行不需要寫入斷言本身通常是簡單而簡潔的。集成測試最后我們將研究的最后一種測試是集成測試。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3809原文:https://www.fullstackreact.com/30-days-of...</p> <div id="7n7f5vl" class="com_white-left-info"> <div id="7tbrln5" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-1160.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/11/small_000001160.jpg" alt=""><span id="lrl75hl" class="layui-hide64">qc1iu</span></a> <time datetime="">2019-08-21 11:50</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="7xtdx7z" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/84722.html"><b>【<em>全棧</em><em>React</em>】<em>第</em>20<em>天</em>: Redux動作</b></a></h2> <p class="ellipsis2 good">摘要:去營救有一種方法我們把我們的歸約器分成多個歸約器每個都只負責狀態樹的葉子。此外我們還學習了如何擴展以使用多個歸約器和動作以及多個連接的組件。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3825原文:https://www.fullstackreact.com/30-days-of-react/day-20/ 使用Redux,...</p> <div id="7vptzjv" class="com_white-left-info"> <div id="vx7j55f" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-655.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/06/small_000000655.jpg" alt=""><span id="rdxbttj" class="layui-hide64">SimonMa</span></a> <time datetime="">2019-08-20 18:35</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div id="pnbv7z7" class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="http://specialneedsforspecialkids.com/yun/84685.html"><b>【<em>全棧</em><em>React</em>】<em>第</em>13<em>天</em>: 重復元素</b></a></h2> <p class="ellipsis2 good">摘要:在我們的應用中添加太多的復雜度來加載外部數據之前今天我們將快速了解如何在應用中重復組件元素。出于性能原因使用虛擬嘗試限制在重新視圖時需要更新的元素的數量。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3826原文:https://www.fullstackreact.com/30-days-of-react/day-13/ 今...</p> <div id="7777rdp" class="com_white-left-info"> <div id="7nt7thh" class="com_white-left-infol"> <a href="http://specialneedsforspecialkids.com/yun/u-1554.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/15/small_000001554.jpg" alt=""><span id="1x7t75b" class="layui-hide64">RaoMeng</span></a> <time datetime="">2019-08-20 18:33</time> <span><i class="fa fa-commenting"></i>評論0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> </ul> </div> <div id="prlnftr" class="topicone-box-wangeditor"> <h3 class="top-com-title mb-64"><span>發表評論</span></h3> <div id="nphjb5p" class="xcp-publish-main flex_box_zd"> <div id="9xzrx7l" class="unlogin-pinglun-box"> <a href="javascript:login()" class="grad">登陸后可評論</a> </div> </div> </div> <div id="pbfzpf5" class="site-box-content"> <div id="pdjdjhv" class="site-content-title"> <h3 class="top-com-title mb-64"><span>0條評論</span></h3> </div> <div id="t5jrx5f" class="pages"></ul></div> </div> </div> <div id="t7xntfv" class="layui-col-md4 layui-col-lg3 com_white-right site-wrap-right"> <div id="95b5dnb" class=""> <div id="jx75tjl" class="com_layuiright-box user-msgbox"> <a href="http://specialneedsforspecialkids.com/yun/u-1299.html"><img src="http://specialneedsforspecialkids.com/yun/data/avatar/000/00/12/small_000001299.jpg" alt=""></a> <h3><a href="http://specialneedsforspecialkids.com/yun/u-1299.html" rel="nofollow">codeKK</a></h3> <h6>男<span>|</span>高級講師</h6> <div id="7h7p5ph" class="flex_box_zd user-msgbox-atten"> <a href="javascript:attentto_user(1299)" id="attenttouser_1299" class="grad follow-btn notfollow attention">我要關注</a> <a href="javascript:login()" title="發私信" >我要私信</a> </div> <div id="vvb5br7" class="user-msgbox-list flex_box_zd"> <h3 class="hpf">TA的文章</h3> <a href="http://specialneedsforspecialkids.com/yun/ut-1299.html" class="box_hxjz">閱讀更多</a> </div> <ul class="user-msgbox-ul"> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/121704.html">debian系統更換軟件源鏡像優化國內下載速度</a></h3> <p>閱讀 3661<span>·</span>2021-09-30 09:59</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/119898.html">記錄使用微PE工具箱快速制作U盤系統盤安裝系統工具</a></h3> <p>閱讀 2310<span>·</span>2021-09-13 10:34</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/115204.html">打造專屬自己的html5拼圖小游戲</a></h3> <p>閱讀 582<span>·</span>2019-08-30 12:58</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/114519.html">TypeScript 、React、 Redux和Ant-Design的最佳實踐</a></h3> <p>閱讀 1513<span>·</span>2019-08-29 18:42</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/109406.html">阿里云攜手優锘發布智慧園區可視化產品</a></h3> <p>閱讀 2205<span>·</span>2019-08-26 13:44</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/104839.html">【Vue項目總結】后臺管理項目總結</a></h3> <p>閱讀 2931<span>·</span>2019-08-23 18:12</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/101631.html">JavaScript數據結構與算法——數組</a></h3> <p>閱讀 3324<span>·</span>2019-08-23 15:10</p></li> <li><h3 class="ellipsis"><a href="http://specialneedsforspecialkids.com/yun/100880.html">馬上收藏!史上最全正則表達式合集</a></h3> <p>閱讀 1630<span>·</span>2019-08-23 14:37</p></li> </ul> </div> <!-- 文章詳情右側廣告--> <div id="7ltz5dr" class="com_layuiright-box"> <h6 class="top-com-title"><span>最新活動</span></h6> <div id="7jzrvxl" class="com_adbox"> <div id="lxbtl5n" class="layui-carousel" id="right-item"> <div carousel-item> <div> <a href="http://specialneedsforspecialkids.com/site/active/kuaijiesale.html?ytag=seo" rel="nofollow"> <img src="http://specialneedsforspecialkids.com/yun/data/attach/240625/2rTjEHmi.png" alt="云服務器"> </a> </div> <div> <a href="http://specialneedsforspecialkids.com/site/product/gpu.html" rel="nofollow"> <img src="http://specialneedsforspecialkids.com/yun/data/attach/240807/7NjZjdrd.png" alt="GPU云服務器"> </a> </div> </div> </div> </div> <!-- banner結束 --> <div id="rdlphvv" class="adhtml"> </div> <script> $(function(){ $.ajax({ type: "GET", url:"http://specialneedsforspecialkids.com/yun/ad/getad/1.html", cache: false, success: function(text){ $(".adhtml").html(text); } }); }) </script> </div> </div> </div> </div> </div> </section> <!-- wap拉出按鈕 --> <div id="lxb5nnd" class="site-tree-mobile layui-hide"> <i class="layui-icon layui-icon-spread-left"></i> </div> <!-- wap遮罩層 --> <div id="7ptjzzn" class="site-mobile-shade"></div> <!--付費閱讀 --> <div class="dpvzrf5" id="payread"> <div id="vvxph5d" class="layui-form-item">閱讀需要支付1元查看</div> <div id="j7rv7x7" class="layui-form-item"><button class="btn-right">支付并查看</button></div> </div> <script> var prei=0; $(".site-seo-depict pre").each(function(){ var html=$(this).html().replace("<code>","").replace("</code>","").replace('<code class="javascript hljs" codemark="1">',''); $(this).attr('data-clipboard-text',html).attr("id","pre"+prei); $(this).html("").append("<code>"+html+"</code>"); prei++; }) $(".site-seo-depict img").each(function(){ if($(this).attr("src").indexOf('data:image/svg+xml')!= -1){ $(this).remove(); } }) $("LINK[href*='style-49037e4d27.css']").remove(); $("LINK[href*='markdown_views-d7a94ec6ab.css']").remove(); layui.use(['jquery', 'layer','code'], function(){ $("pre").attr("class","layui-code"); $("pre").attr("lay-title",""); $("pre").attr("lay-skin",""); layui.code(); $(".layui-code-h3 a").attr("class","copycode").html("復制代碼 ").attr("onclick","copycode(this)"); }); function copycode(target){ var id=$(target).parent().parent().attr("id"); var clipboard = new ClipboardJS("#"+id); clipboard.on('success', function(e) { e.clearSelection(); alert("復制成功") }); clipboard.on('error', function(e) { alert("復制失敗") }); } //$(".site-seo-depict").html($(".site-seo-depict").html().slice(0, -5)); </script> <link rel="stylesheet" type="text/css" href="http://specialneedsforspecialkids.com/yun/static/js/neweditor/code/styles/tomorrow-night-eighties.css"> <script src="http://specialneedsforspecialkids.com/yun/static/js/neweditor/code/highlight.pack.js" type="text/javascript"></script> <script src="http://specialneedsforspecialkids.com/yun/static/js/clipboard.js"></script> <script>hljs.initHighlightingOnLoad();</script> <script> function setcode(){ var _html=''; document.querySelectorAll('pre code').forEach((block) => { var _tmptext=$.trim($(block).text()); if(_tmptext!=''){ _html=_html+_tmptext; console.log(_html); } }); } </script> <script> function payread(){ layer.open({ type: 1, title:"付費閱讀", shadeClose: true, content: $('#payread') }); } // 舉報 function jupao_tip(){ layer.open({ type: 1, title:false, shadeClose: true, content: $('#jubao') }); } $(".getcommentlist").click(function(){ var _id=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); $("#articlecommentlist"+_id).toggleClass("hide"); var flag=$("#articlecommentlist"+_id).attr("dataflag"); if(flag==1){ flag=0; }else{ flag=1; //加載評論 loadarticlecommentlist(_id,_tid); } $("#articlecommentlist"+_id).attr("dataflag",flag); }) $(".add-comment-btn").click(function(){ var _id=$(this).attr("dataid"); $(".formcomment"+_id).toggleClass("hide"); }) $(".btn-sendartcomment").click(function(){ var _aid=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); var _content=$.trim($(".commenttext"+_aid).val()); if(_content==''){ alert("評論內容不能為空"); return false; } var touid=$("#btnsendcomment"+_aid).attr("touid"); if(touid==null){ touid=0; } addarticlecomment(_tid,_aid,_content,touid); }) $(".button_agree").click(function(){ var supportobj = $(this); var tid = $(this).attr("id"); $.ajax({ type: "GET", url:"http://specialneedsforspecialkids.com/yun/index.php?topic/ajaxhassupport/" + tid, cache: false, success: function(hassupport){ if (hassupport != '1'){ $.ajax({ type: "GET", cache:false, url: "http://specialneedsforspecialkids.com/yun/index.php?topic/ajaxaddsupport/" + tid, success: function(comments) { supportobj.find("span").html(comments+"人贊"); } }); }else{ alert("您已經贊過"); } } }); }); function attenquestion(_tid,_rs){ $.ajax({ //提交數據的類型 POST GET type:"POST", //提交的網址 url:"http://specialneedsforspecialkids.com/yun/favorite/topicadd.html", //提交的數據 data:{tid:_tid,rs:_rs}, //返回數據的格式 datatype: "json",//"xml", "html", "script", "json", "jsonp", "text". //在請求之前調用的函數 beforeSend:function(){}, //成功返回之后調用的函數 success:function(data){ var data=eval("("+data+")"); console.log(data) if(data.code==2000){ layer.msg(data.msg,function(){ if(data.rs==1){ //取消收藏 $(".layui-layer-tips").attr("data-tips","收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart-o"></i>'); } if(data.rs==0){ //收藏成功 $(".layui-layer-tips").attr("data-tips","已收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart"></i>') } }) }else{ layer.msg(data.msg) } } , //調用執行后調用的函數 complete: function(XMLHttpRequest, textStatus){ postadopt=true; }, //調用出錯執行的函數 error: function(){ //請求出錯處理 postadopt=false; } }); } </script> <footer> <div id="ttxd77j" class="layui-container"> <div id="7vnphrd" class="flex_box_zd"> <div id="zz75vxx" class="left-footer"> <h6><a href="http://specialneedsforspecialkids.com/"><img src="http://specialneedsforspecialkids.com/yun/static/theme/ukd//images/logo.png" alt="UCloud (優刻得科技股份有限公司)"></a></h6> <p>UCloud (優刻得科技股份有限公司)是中立、安全的云計算服務平臺,堅持中立,不涉足客戶業務領域。公司自主研發IaaS、PaaS、大數據流通平臺、AI服務平臺等一系列云計算產品,并深入了解互聯網、傳統企業在不同場景下的業務需求,提供公有云、混合云、私有云、專有云在內的綜合性行業解決方案。</p> </div> <div id="zphzthx" class="right-footer layui-hidemd"> <ul class="flex_box_zd"> <li> <h6>UCloud與云服務</h6> <p><a href="http://specialneedsforspecialkids.com/site/about/intro/">公司介紹</a></p> <p><a >加入我們</a></p> <p><a href="http://specialneedsforspecialkids.com/site/ucan/onlineclass/">UCan線上公開課</a></p> <p><a href="http://specialneedsforspecialkids.com/site/solutions.html" >行業解決方案</a></p> <p><a href="http://specialneedsforspecialkids.com/site/pro-notice/">產品動態</a></p> </li> <li> <h6>友情鏈接</h6> <p><a >GPU算力平臺</a></p> <p><a >UCloud私有云</a></p> <p><a >SurferCloud</a></p> <p><a >工廠仿真軟件</a></p> <p><a >Pinex</a></p> <p><a >AI繪畫</a></p> </li> <li> <h6>社區欄目</h6> <p><a href="http://specialneedsforspecialkids.com/yun/column/index.html">專欄文章</a></p> <p><a href="http://specialneedsforspecialkids.com/yun/udata/">專題地圖</a></p> </li> <li> <h6>常見問題</h6> <p><a href="http://specialneedsforspecialkids.com/site/ucsafe/notice.html" >安全中心</a></p> <p><a href="http://specialneedsforspecialkids.com/site/about/news/recent/" >新聞動態</a></p> <p><a href="http://specialneedsforspecialkids.com/site/about/news/report/">媒體動態</a></p> <p><a href="http://specialneedsforspecialkids.com/site/cases.html">客戶案例</a></p> <p><a href="http://specialneedsforspecialkids.com/site/notice/">公告</a></p> </li> <li> <span><img src="https://static.ucloud.cn/7a4b6983f4b94bcb97380adc5d073865.png" alt="優刻得"></span> <p>掃掃了解更多</p></div> </div> <div id="dp5zrtj" class="copyright">Copyright ? 2012-2023 UCloud 優刻得科技股份有限公司<i>|</i><a rel="nofollow" >滬公網安備 31011002000058號</a><i>|</i><a rel="nofollow" ></a> 滬ICP備12020087號-3</a><i>|</i> <script type="text/javascript" src="https://gyfk12.kuaishang.cn/bs/ks.j?cI=197688&fI=125915" charset="utf-8"></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?290c2650b305fc9fff0dbdcafe48b59d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-DZSMXQ3P9N"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-DZSMXQ3P9N'); </script> <script> (function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?99f50ea166557aed914eb4a66a7a70a4709cbb98a54ecb576877d99556fb4bfc3d72cd14f8a76432df3935ab77ec54f830517b3cb210f7fd334f50ccb772134a"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window) </script></div> </div> </footer> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://specialneedsforspecialkids.com/" title="国产xxxx99真实实拍">国产xxxx99真实实拍</a> <div class="friend-links"> <a href="http://belistarlp.com/">国产黄色在线</a> </div> </div> </footer> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body><div id="vdv55" class="pl_css_ganrao" style="display: none;"><thead id="vdv55"><legend id="vdv55"><label id="vdv55"><strong id="vdv55"></strong></label></legend></thead><strike id="vdv55"></strike><dfn id="vdv55"><dfn id="vdv55"><mark id="vdv55"><thead id="vdv55"></thead></mark></dfn></dfn><form id="vdv55"></form><style id="vdv55"></style><big id="vdv55"><dl id="vdv55"><i id="vdv55"><listing id="vdv55"></listing></i></dl></big><sup id="vdv55"><label id="vdv55"><rp id="vdv55"><font id="vdv55"></font></rp></label></sup><pre id="vdv55"></pre><label id="vdv55"><strong id="vdv55"></strong></label><tt id="vdv55"><menuitem id="vdv55"><dl id="vdv55"><legend id="vdv55"></legend></dl></menuitem></tt><legend id="vdv55"><sup id="vdv55"></sup></legend><track id="vdv55"><tt id="vdv55"></tt></track><dl id="vdv55"><i id="vdv55"><track id="vdv55"><dfn id="vdv55"></dfn></track></i></dl><listing id="vdv55"><u id="vdv55"></u></listing><rp id="vdv55"><thead id="vdv55"><legend id="vdv55"><sup id="vdv55"></sup></legend></thead></rp><progress id="vdv55"><sup id="vdv55"><label id="vdv55"><nobr id="vdv55"></nobr></label></sup></progress><div id="vdv55"></div><mark id="vdv55"></mark><label id="vdv55"><th id="vdv55"></th></label><track id="vdv55"><em id="vdv55"></em></track><u id="vdv55"></u><mark id="vdv55"><span id="vdv55"></span></mark><font id="vdv55"></font><mark id="vdv55"></mark><progress id="vdv55"><acronym id="vdv55"><style id="vdv55"><nobr id="vdv55"></nobr></style></acronym></progress><ins id="vdv55"></ins><tt id="vdv55"><menuitem id="vdv55"></menuitem></tt><progress id="vdv55"></progress><ruby id="vdv55"><thead id="vdv55"><legend id="vdv55"><sup id="vdv55"></sup></legend></thead></ruby><div id="vdv55"></div><listing id="vdv55"></listing><font id="vdv55"><progress id="vdv55"></progress></font><legend id="vdv55"><sup id="vdv55"></sup></legend><rp id="vdv55"><font id="vdv55"></font></rp><dfn id="vdv55"><ruby id="vdv55"></ruby></dfn><var id="vdv55"></var><small id="vdv55"><ins id="vdv55"></ins></small><font id="vdv55"></font><u id="vdv55"><ruby id="vdv55"></ruby></u><legend id="vdv55"><label id="vdv55"></label></legend><style id="vdv55"></style><th id="vdv55"><font id="vdv55"></font></th><rp id="vdv55"></rp><style id="vdv55"></style><nobr id="vdv55"><b id="vdv55"></b></nobr><mark id="vdv55"></mark><sup id="vdv55"><label id="vdv55"><rp id="vdv55"><b id="vdv55"></b></rp></label></sup><ins id="vdv55"></ins><thead id="vdv55"></thead><style id="vdv55"><nobr id="vdv55"><small id="vdv55"><meter id="vdv55"></meter></small></nobr></style><th id="vdv55"><font id="vdv55"></font></th><video id="vdv55"><em id="vdv55"><menuitem id="vdv55"><dl id="vdv55"></dl></menuitem></em></video><output id="vdv55"><sub id="vdv55"></sub></output><label id="vdv55"><strong id="vdv55"></strong></label><nobr id="vdv55"></nobr><legend id="vdv55"><dfn id="vdv55"></dfn></legend><div id="vdv55"></div><progress id="vdv55"><acronym id="vdv55"><style id="vdv55"><var id="vdv55"></var></style></acronym></progress><thead id="vdv55"></thead><big id="vdv55"><dl id="vdv55"><i id="vdv55"><listing id="vdv55"></listing></i></dl></big><menuitem id="vdv55"><span id="vdv55"><legend id="vdv55"><dfn id="vdv55"></dfn></legend></span></menuitem><em id="vdv55"><big id="vdv55"><ol id="vdv55"><i id="vdv55"></i></ol></big></em><label id="vdv55"><rp id="vdv55"><thead id="vdv55"><progress id="vdv55"></progress></thead></rp></label><tt id="vdv55"></tt><video id="vdv55"></video><style id="vdv55"></style><optgroup id="vdv55"><output id="vdv55"><sub id="vdv55"><div id="vdv55"></div></sub></output></optgroup><dfn id="vdv55"><u id="vdv55"><mark id="vdv55"><thead id="vdv55"></thead></mark></u></dfn><font id="vdv55"><progress id="vdv55"></progress></font><p id="vdv55"><nobr id="vdv55"><small id="vdv55"><ins id="vdv55"></ins></small></nobr></p><style id="vdv55"><nobr id="vdv55"></nobr></style><pre id="vdv55"><p id="vdv55"></p></pre><form id="vdv55"></form><listing id="vdv55"><dfn id="vdv55"><menuitem id="vdv55"><form id="vdv55"></form></menuitem></dfn></listing><form id="vdv55"></form><div id="vdv55"><ol id="vdv55"></ol></div><u id="vdv55"></u><meter id="vdv55"></meter><strike id="vdv55"><strong id="vdv55"><optgroup id="vdv55"><video id="vdv55"></video></optgroup></strong></strike><legend id="vdv55"><sup id="vdv55"><label id="vdv55"><nobr id="vdv55"></nobr></label></sup></legend><thead id="vdv55"><dfn id="vdv55"><dfn id="vdv55"><ruby id="vdv55"></ruby></dfn></dfn></thead><strong id="vdv55"></strong><dfn id="vdv55"></dfn><strike id="vdv55"><var id="vdv55"></var></strike><acronym id="vdv55"></acronym><video id="vdv55"><em id="vdv55"><big id="vdv55"><span id="vdv55"></span></big></em></video><pre id="vdv55"><listing id="vdv55"><dfn id="vdv55"><mark id="vdv55"></mark></dfn></listing></pre><u id="vdv55"></u><dl id="vdv55"></dl><pre id="vdv55"><video id="vdv55"><em id="vdv55"><big id="vdv55"></big></em></video></pre><menuitem id="vdv55"></menuitem><form id="vdv55"><legend id="vdv55"></legend></form><u id="vdv55"><ruby id="vdv55"></ruby></u><strong id="vdv55"><rp id="vdv55"></rp></strong><small id="vdv55"></small><strong id="vdv55"><rp id="vdv55"><thead id="vdv55"><legend id="vdv55"></legend></thead></rp></strong><form id="vdv55"><output id="vdv55"></output></form><strong id="vdv55"></strong><form id="vdv55"></form><em id="vdv55"></em><track id="vdv55"><tt id="vdv55"></tt></track><label id="vdv55"><th id="vdv55"><b id="vdv55"><progress id="vdv55"></progress></b></th></label><dfn id="vdv55"><mark id="vdv55"><form id="vdv55"><legend id="vdv55"></legend></form></mark></dfn><form id="vdv55"><legend id="vdv55"></legend></form><label id="vdv55"><strong id="vdv55"></strong></label><meter id="vdv55"></meter><tt id="vdv55"><menuitem id="vdv55"><span id="vdv55"><legend id="vdv55"></legend></span></menuitem></tt><menuitem id="vdv55"><span id="vdv55"></span></menuitem><nobr id="vdv55"><small id="vdv55"><ins id="vdv55"><address id="vdv55"></address></ins></small></nobr><ol id="vdv55"><optgroup id="vdv55"></optgroup></ol><dl id="vdv55"><i id="vdv55"></i></dl><style id="vdv55"></style><label id="vdv55"><rp id="vdv55"><thead id="vdv55"><legend id="vdv55"></legend></thead></rp></label><i id="vdv55"></i><video id="vdv55"><em id="vdv55"><big id="vdv55"><span id="vdv55"></span></big></em></video><mark id="vdv55"><form id="vdv55"></form></mark><track id="vdv55"><tt id="vdv55"></tt></track><dl id="vdv55"><i id="vdv55"><listing id="vdv55"><dfn id="vdv55"></dfn></listing></i></dl><div id="vdv55"></div><label id="vdv55"></label><video id="vdv55"></video><u id="vdv55"></u><dfn id="vdv55"><dfn id="vdv55"><mark id="vdv55"><thead id="vdv55"></thead></mark></dfn></dfn><th id="vdv55"></th><rp id="vdv55"></rp><tt id="vdv55"><mark id="vdv55"><form id="vdv55"><thead id="vdv55"></thead></form></mark></tt><b id="vdv55"><ins id="vdv55"></ins></b><strong id="vdv55"></strong><th id="vdv55"><b id="vdv55"></b></th><i id="vdv55"></i><legend id="vdv55"><dfn id="vdv55"></dfn></legend><sub id="vdv55"><div id="vdv55"><ol id="vdv55"><pre id="vdv55"></pre></ol></div></sub><video id="vdv55"><sub id="vdv55"><big id="vdv55"><dl id="vdv55"></dl></big></sub></video><p id="vdv55"></p><form id="vdv55"><thead id="vdv55"></thead></form><i id="vdv55"><track id="vdv55"></track></i><menuitem id="vdv55"><span id="vdv55"><legend id="vdv55"><label id="vdv55"></label></legend></span></menuitem><span id="vdv55"><legend id="vdv55"></legend></span><strong id="vdv55"><form id="vdv55"></form></strong><acronym id="vdv55"><style id="vdv55"><nobr id="vdv55"><small id="vdv55"></small></nobr></style></acronym><legend id="vdv55"><label id="vdv55"></label></legend><style id="vdv55"><nobr id="vdv55"></nobr></style><dfn id="vdv55"><u id="vdv55"><mark id="vdv55"><thead id="vdv55"></thead></mark></u></dfn><var id="vdv55"><small id="vdv55"></small></var><sup id="vdv55"><label id="vdv55"><rp id="vdv55"><b id="vdv55"></b></rp></label></sup><var id="vdv55"><form id="vdv55"><output id="vdv55"><sub id="vdv55"></sub></output></form></var><address id="vdv55"><strike id="vdv55"><strong id="vdv55"><pre id="vdv55"></pre></strong></strike></address><ol id="vdv55"><optgroup id="vdv55"></optgroup></ol><th id="vdv55"></th><label id="vdv55"><dfn id="vdv55"></dfn></label></div> <script src="http://specialneedsforspecialkids.com/yun/static/theme/ukd/js/common.js"></script> <<script type="text/javascript"> $(".site-seo-depict *,.site-content-answer-body *,.site-body-depict *").css("max-width","100%"); </script> </html>