slot 是vue的內置組件,主要分爲傳值和接收值兩部分;html
首先寫一個自定義組件:例如 <js></js>vue
再寫一個template模板app
並在構造器中使用components:{} 掛載,ui
在構造器的data中寫一個選項方法:url
data: {
jsData: {
url: 'http://www.baidu.com',
netName: '百度',
skill: 'seach'
}
},
主要是傳值與接收值部分;
在自定義組件中傳值,經過(key,value)的方式
<js>
<span slot="url">{{ jsData.url }}</span>
<span slot="netName">{{ jsData.netName }}</span>
<span slot="skill">{{ jsData.skill }}</span>
</js>
而後在template模板中接收傳入的值:
<template id="tep">
<div>
<p>百度地址:<slot name="url"></slot></p>
<p>名稱:<slot name="netName"></slot></p>
<p>做用:<slot name="skill"></slot></p>
</div>
</template>
將其掛載到 js 組件中
var js = {
template: '#tep'
}
完整代碼示例以下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>slot</title>
<script src="../assets/js/vue.js"></script>
</head>
<body>
<h1>slot</h1>
<hr>
<div id="app">
<js>
<span slot="url">{{ jsData.url }}</span>
<span slot="netName">{{ jsData.netName }}</span>
<span slot="skill">{{ jsData.skill }}</span>
</js>
</div>
<template id="tep">
<div>
<p>百度地址:<slot name="url"></slot></p>
<p>名稱:<slot name="netName"></slot></p>
<p>做用:<slot name="skill"></slot></p>
</div>
</template>
<script>
var js = {
template: '#tep'
}
var app = new Vue({
el: '#app',
data: {
jsData: {
url: 'http://www.baidu.com',
netName: '百度',
skill: 'seach'
}
},
components: {
'js': js
}
})
</script>
</body>
</html>