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

首頁 > 編程 > JavaScript > 正文

Vue作用域插槽slot-scope實例代碼

2019-11-19 13:02:00
字體:
來源:轉載
供稿:網友

vue中的插槽有三種:單個插槽、具名插槽、作用域插槽,這個在官網上能看到

https://cn.vuejs.org/v2/guide/components.html#單個插槽

作用域插槽簡單來說就是父組件只管顯示樣式,數據由子組件來提供。比如上面的代碼,el-table-column內的template是傳遞給其內部solt的顯示內容,但是scope的值是由el-table-column內部solt綁定的數據返回的。這個數據具體是什么由el-table-column中指定,類似:

<slot name="**" :data="data"></slot>export default {data: function(){return {data: ['1','2','3','4','5','6']}},}

而scope就是上面代碼中的data。

昨天看vue的官網文檔,在slot-scope這塊不是特別的明白,今天自己做了一個小例子,便于理解。

先說一下我們假設的應用常用場景,我們已經開發了一個代辦事項列表的組件,很多模塊在用,現在要求在 不影響已測試通過的模塊功能和展示 的情況下,給 已完成的代辦項增加一個對勾效果

也就是說,代辦事項列表組件要滿足一下幾點

  1. 之前數據格式和引用接口不變,正常展示
  2. 新的功能模塊增加對勾

解決辦法很多,不過為了解釋組件作用域插槽,我們就用slot-scope了,寫列一下之前組件的代碼。

todo-list.vue 組件

<template> <ul> <li v-for="item in todoList" v-bind:key="item.id">  <slot v-bind:itemValue = "item" >   {{ item.test }}   </slot> </li> </ul></template><script>export default { name: 'todoList', props: { todos: Array }, data(){ return {  todoList:this.todos } }}</script>

組件代碼

<template> <ul> <li v-for="item in todoList" v-bind:key="item.id">  <slot>  {{ item.test }}   </slot> </li> </ul></template><script>export default { name: 'todoList', props: { todos: Array }, data(){ return {  todoList:this.todos } }}</script>

父組件代碼

<template> <div id="app"> <h2>之前組件調用</h2> <todo-list v-bind:todos="todosBefore" ></todo-list> </div></template><script>import todoList from './components/todo-list.vue'export default { name: 'app', data:function(){ return {  todosBefore:[  {   test:'詢問時間',   id:12312313123  },  {   test:'代辦1',   id:123123123423423  },  {   test:'愛你地方年底見

主站蜘蛛池模板:
沛县|
安陆市|
石河子市|
山东|
蓝山县|
家居|
石台县|
沁水县|
华坪县|
贵港市|
胶南市|
马关县|
淮南市|
滨州市|
武功县|
廊坊市|
白城市|
通辽市|
汾阳市|
高平市|
峨山|
新和县|
江山市|
专栏|
荆门市|
岚皋县|
新干县|
金华市|
西畴县|
敦煌市|
望奎县|
郎溪县|
辽阳市|
勃利县|
寿宁县|
邵东县|
镶黄旗|
德阳市|
准格尔旗|
封开县|
抚宁县|