<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>

                ### Vue.js PHP 程序員除了寫后臺程序之外,還有很大一部分工作在展現層,和瀏覽器前端打交道。2017 年你還在用 jQuery 操作 DOM 實現界面渲染嗎?已經完全 out 了。現在用 Vue.js 可以非常方便地實現數據和 DOM 元素的綁定。通過 Ajax 請求后臺接口返回數據后,更新前端數據自動實現界面渲染。 如果你不光要寫 Web 程序,同時還希望兼顧 Android 、IOS 、PC 客戶端等平臺,React Native 是一個不錯的選擇。 ``` <script> export default { name: "Home", data() { return {}; }, methods: { // 組件的方法 }, watch: { // watch擅長處理的場景:一個數據影響多個數據 }, computed: { // computed擅長處理的場景:一個數據受多個數據影響 }, beforeCreate: function() { // 在實例初始化之后,數據觀測(data observer) 和 event/watcher 事件配置之前被調用。 }, created: function() { // 實例已經創建完成之后被調用。在這一步,實例已完成以下的配置:數據觀測(data observer),屬性和方法的運算, watch/event 事件回調。然而,掛載階段還沒開始,$el 屬性目前不可見。 }, beforeMount: function() { // 在掛載開始之前被調用:相關的 render 函數首次被調用。 }, mounted: function() { // 編譯好的HTML掛載到頁面完成后執行的事件鉤子 // el 被新創建的 vm.$el 替換,并掛載到實例上去之后調用該鉤子。 // 此鉤子函數中一般會做一些ajax請求獲取數據進行數據初始化 console.log("Home done"); }, beforeUpdate: function() { // 數據更新時調用,發生在虛擬 DOM 重新渲染和打補丁之前。 你可以在這個鉤子中進一步地更改狀態,這不會觸發附加的重渲染過程。 }, updated: function() { // 由于數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之后會調用該鉤子。 // 當這個鉤子被調用時,組件 DOM 已經更新,所以你現在可以執行依賴于 DOM 的操作。然而在大多數情況下,你應該避免在此期間更改狀態,因為這可能會導致更新無限循環。 // 該鉤子在服務器端渲染期間不被調用。 }, beforeDestroy: function() { // 實例銷毀之前調用。在這一步,實例仍然完全可用。 }, destroyed: function() { // Vue 實例銷毀后調用。調用后,Vue 實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷毀。 該鉤子在服務器端渲染期間不被調用。 } }; </script> ``` #### (1)渲染列表 > 初始化數據 ~~~ var dom = null; $.post("/list",{'page':1},function(res){ dom = new Vue({ el: '#app', data: { sites:res.data } }); }); ~~~ > 再次渲染數據 ~~~ layui.jquery.post("/list",{'page':obj.curr},function(res){ layer.close(load); dom.sites=res.data; }); ~~~ #### (2)預加載前隱藏原始代碼(不用解釋) ```css <style type="text/css"> [v-cloak] { display: none; } </style> ``` ```html <tbody id="tbo" v-cloak> <tr v-for="of in oflist"> <!-- 省略若干代碼 --> </tr> </tbody> ```
                  <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>

                              哎呀哎呀视频在线观看