国产探花免费观看_亚洲丰满少妇自慰呻吟_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:'愛你地方年底見

主站蜘蛛池模板:
中山市|
高密市|
衡东县|
会昌县|
达孜县|
汉川市|
体育|
桐庐县|
电白县|
韩城市|
太原市|
七台河市|
龙岩市|
玛沁县|
巨野县|
华坪县|
温宿县|
鲁山县|
大邑县|
东港市|
瓮安县|
曲周县|
工布江达县|
建始县|
聊城市|
云梦县|
寻乌县|
长汀县|
古田县|
文登市|
甘泉县|
芦溪县|
娄烦县|
阳信县|
安福县|
永福县|
湖北省|
湘阴县|
彭阳县|
科尔|
宿迁市|