<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 條件渲染&&列表渲染 條件渲染以及列表渲染作為數據驅動視圖的重要部分,值得一提 1.條件渲染的` wx:if` 以及 `hidden` * `wx:if` 會產生局部渲染,銷毀條件塊(或者重新渲染) * `hidden` 就是直接控制 `display block/none` 了 所以官網給出的結論是 > 一般來說,`wx:if` 有更高的切換消耗而 `hidden` 有更高的初始渲染消耗。因此,如果需要頻繁切換的情景下,用 hidden 更好,如果在運行時條件不大可能改變則 `wx:if` 較好。 2.列表渲染 ```html <view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName" wx:key="*this"> {{idx}}: {{itemName.message}} </view> ``` 這里其他 for,index,item 這些循環渲染基本的東西就不具體說了,談談這個 wx:key 假如我們更新array數組,預期來說視圖重新渲染,但是我們假如只是在 array 中 push 更多的元素,我們的想法應該是重新排序,不去重復創建視圖原來已經有的元素,這里為了標識 item,我們就可以用 wx:key ,有助于提升渲染的效率,并且能夠保持狀態(如`<input/>`中的輸入內容,`<switch/>`的選中狀態) # video 組件 開發時用到video組件,遇到一些問題也拿出來講下 首先開發者需要記住的一個很重要的點 > map、canvas、video、textarea 是由客戶端創建的原生組件,原生組件的層級是最高的,所以頁面中的其他組件無論設置 z-index 為多少,都無法蓋在原生組件上。 原生組件暫時還無法放在 scroll-view 上,也無法對原生組件設置 css 動畫。 其次video組件是沒辦法跟著屏幕滾動的,假如你放了一個video組件fixed在頂部,它也是無法跟著屏幕滾動的,開發者工具可以實現,但是真機滾動后是會出現黑影的,視頻還是一直定位在原來的位置(這個也體現了本文開頭的環境的區別),要解決這個問題就只能是不能全屏滾動,用頁面的一部分scroll-view滾動即可,讓視頻不用滾動 還有一個就是video組件其實你用wx:if去控制渲染隱藏是有問題的,當你多次切換,會發現在某些機型上發熱嚴重,抓包發現之前創建的video實例并沒有真正地隨著wx:if銷毀,還在請求數據,所以,假如需要控制渲染隱藏video組件的時候,可以嘗試使用hidden屬性配合wx.createVideoContext控制暫停來解決問題 # swiper-view 實現頻道滑動切換 為了實現跟原生應用接近的體驗,采用手勢左右滑動來實現頻道切換 先講講swiper-view如何實現滑動的呢? ![](http://7xp9v5.com1.z0.glb.clouddn.com/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202017-07-25%20%E4%B8%8B%E5%8D%886.14.03.png) 從上圖swiper-item可以看到其實就是改變translate去實現的 swiper-item絕對定位,并加入will-change:auto提升為合成層,在實現動畫translate時讓頁面不發生重繪,在GPU完成 注意到一個 absolute,所以swiper-item內部的內容是無法把外部給撐開的,所以無法實現自適應,必須自己指定高度 我們的需求是要實現上面預留導航欄,全屏滑動,css上就可以這樣 ```css page { box-sizing: border-box; -webkit-box-sizing: border-box; height: 100%; /* 預留頂部導航欄 */ padding-top: 89rpx; } .swiper-container { height: 100%; } ``` 假如你還想在里面放入可滾動的列表項,毫無疑問得使用scroll-view,而不是 view(overflow:auto)了,不然reachBottom 的觸發就會出問題,因為本來就只有一屏了 加入 scroll-view 的話,Page 下拉加載是跟 scroll-view 相沖突的,所以要么拋棄下拉加載,要么只能使用觸頂加載 # 小程序性能調優 近期官網也出來了一個優化建議,開發者務必要看看 > [優化建議](https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips.html) 大體上就是 * 不要頻繁地去setData,能合成一個setData盡量合成一個 * 不需要視圖更新的data不要使用setData * setData數據不要過大(當數據量過大時會增加腳本的編譯執行時間,占用 WebView JS 線程) * 由于用戶使用小程序是從CDN下載,并且目前小程序打包是會將工程下所有文件都打入代碼包內(這個還是需要小程序那邊優化,按需會好點),所以目前你代碼包多放東西,意味著用戶得多下資源,多耗費流量,首次打開速度也會變慢
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看