1. 程式人生 > >內建元件 -slot 父元件向子元件傳值

內建元件 -slot 父元件向子元件傳值

slot是標籤的內容擴充套件,也就是說你用slot就可以在自定義元件時傳遞給元件內容,元件接收內容並輸出。

先來定義一個<jspang></jspang>的元件,這個元件用來顯示博主的一些資訊。

我們在Vue 構造器裡的data中給出了資訊,資訊如下:(部落格地址,網名,使用技能)

1234567data:{jspangData:{bolgUrl:'http://jspang.com',netName:'技術胖',skill:'Web前端'}},

我們用<template></template>標籤的方式定義了元件:

12345678<template id
="tmp"><div><p>部落格地址:</p><p>網名:</p><p>技術型別:</p></div></template>

我們現在就可以用slot功能讓元件接收傳遞過來的值,並在模板中接收顯示。

slot的使用需要兩步:

1、在HTML的元件中用slot屬性傳遞值。

12345<jspang><span slot="bolgUrl">{{jspangData.bolgUrl}}</span><span slot="netName">{{jspangData.netName}}
</span><span slot="skill">{{jspangData.skill}}</span></jspang>

2、在元件模板中用<slot></slot>標籤接收值。

12345678<template id="tmp"><div><p>部落格地址:<slot name="bolgUrl"></slot></p><p>網名:<slot name="netName"></slot></p><p>技術型別:
<slot name="skill"></slot></p></div></template>

我們貼出這個案例的全部程式碼:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8">    <script type="text/javascript"src="../assets/js/vue.js"></script><title>Slot content extend Demo</title></head><body><h1>Slot content extend Demo</h1><hr><div id="app"><jspang><span slot="bolgUrl">{{jspangData.bolgUrl}}</span><span slot="netName">{{jspangData.netName}}</span><span slot="skill">{{jspangData.skill}}</span></jspang></div><template id="tmp"><div><p>部落格地址:<slot name="bolgUrl"></slot></p><p>網名:<slot name="netName"></slot></p><p>技術型別:<slot name="skill"></slot></p></div></template>    <script type="text/javascript">varjspang={template:'#tmp'}varapp=newVue({el:'#app',data:{jspangData:{bolgUrl:'http://jspang.com',netName:'技術胖',skill:'Web前端'}},components:{"jspang":jspang}})</script></body></html>