在vue中使用 layui框架中的form.render()無效解決辦法


下面簡單介紹在vue中使用 layui框架中的form.render()無效解決辦法。

原文地址:小時刻個人技術博客 > http://small.aiweimeng.top/index.php/archives/layuiForm.html


 

近期開發的項目中前端ui框架用的是Layui,數據渲染使用vue去渲染,當我用vue渲染表單控件的數據時,
會出現控件被禁用的情況,例如:select下拉等,於是去看文檔,按照文檔說的寫了,結果然並卵,( ̄▽ ̄)"。
搞了半天都沒搞好。然后在百度搜索了vue的相關文檔后菜解決了問題。
首先覺一個例子,如下面的一段代碼:

var new Vue({
   el:"#app",
   data:{
     items:null
   },
   mounted:function () {
      this.details();
      // 這是layui的方法
      form.render();
   },
   methods:{
      details:function(){
        var _self = this;
        $.ajax獲取數據成功后進行表單重載
        form.render();
      } 
   }
});

 


上述代碼按理來說應該沒什么問題啊,但是vue渲染數據成功后layui的表單控件就是不能用,why?(;′⌒`)。

然后百度啊,谷歌啊,各種搜索引擎,終於解決了問題,O(∩_∩)O。看下面,

Vue updated生命周期函數:由於數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之后會調用該鈎子。
無論是組件本身的數據變更,還是從父組件接收到的 props 或者從vuex里面拿到的數據有變更,都會觸發虛擬 DOM 重新渲染和打補丁,並在之后調用 updated。
然后只需要在vue的updated里面重新再去走一下layui的表單重載就行了。
代碼:

updated:function(){
   layui.use(['form'], function(){
      form.render();
   }
}

 

就這樣OK,完美解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM