国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

深入理解vue Render函數(shù)

2024-05-06 15:14:13
字體:
供稿:網(wǎng)友

最近在學(xué)習(xí)vue,正好今日留個(gè)筆記,我自己還在摸索學(xué)習(xí)中,現(xiàn)整理出來以作記錄。

會(huì)使用基本的Render函數(shù)后,就會(huì)想,這怎么用 v-for/v-if/v-model;我寫個(gè)vue Render函數(shù)進(jìn)階

首先是v-if 的轉(zhuǎn)化使用全局組件的v 值決定組件渲染的狀態(tài),對實(shí)例中傳遞的props的“nnum”值得控制可以自如的切換兩種狀態(tài)顯示。這樣就是和v-if 一樣使用組件了

<div id="app">     <mycom :v="nnum">       <div slot="slot2">hahahhah</div>       <div slot="slot1">ggggggggggggg</div>     </mycom>   </div>   <script>     Vue.component('mycom',{       render:function(createElement){         var s=this;         if(this.v==1){           return createElement('div',            {             domProps:{innerHTML:'component n='+this.n}            })         }else{            return createElement('div',             [this.$slots.slot1,this.$slots.slot2])         }       },       props:{         v:{           type:Number,           default:0         },         n:{           default:'hello'         }       }     });     var app=new Vue({       el:'#app',       data:{         nnum:1       }     }) 

v-for 的使用需要需要使用到map

<div id="app">     <mycom :v="nnum" :ar="arr">       <div slot="slot2">hahahhah</div>       <div slot="slot1">ggggggggggggg</div>     </mycom>   </div>   <script>     Vue.component('mycom',{       render:function(createElement){         if(this.v==1){           return createElement('div',               this.ar.map(function(item){                 return createElement('li',                   {                     domProps:{                       innerHTML:item                     }                   })               })            )         }else{            return createElement('div',             [this.$slots.slot1,this.$slots.slot2])         }       },       props:{         v:{           type:Number,           default:0         },         n:{           default:'hello'         },         ar:{           type:Array,           default:function(){ return [1,23,4,5,6,55,65]}         }        }     });     var app=new Vue({       el:'#app',       data:{         nnum:1,         arr:[1,2,3,4,5,6,7,8]       }     })   </script>   </body> 

只有map方法才能檢測改變,其他的方法不能根據(jù)數(shù)據(jù)的改變能改變相應(yīng)的狀態(tài)下的例子中的arr數(shù)組   依靠 apply的方法來實(shí)現(xiàn)的就不能夠檢測this.ar 的變換來重新計(jì)算

return createElement('div',              Array.apply(null,this.ar.map(function(item){                return createElement('li',                  {                    domProps:{                      innerHTML:'item'                    }                  })              }))            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 揭西县| 太保市| 古浪县| 临西县| 陈巴尔虎旗| 临湘市| 荔波县| 乌什县| 岳普湖县| 鹰潭市| 阳春市| 闽清县| 南昌县| 含山县| 如东县| 夏邑县| 庄浪县| 石首市| 通海县| 卢龙县| 罗平县| 日照市| 四会市| 古丈县| 当涂县| 桦南县| 杭州市| 沁源县| 松江区| 宁德市| 白城市| 克拉玛依市| 靖州| 澜沧| 阿尔山市| 梅州市| 山西省| 铜梁县| 万源市| 禹州市| 双流县|