vue元件系列4、Table封裝上
為了少用element UI 元件,自己改的方便,所以自己倒騰。。。
要封裝Table必須要解決不同業務情況下的資料繫結,而處理這個就要先搞定 slot 這個佔位符
整個過程如下,註釋都在程式碼裡,
slot 測試外掛部分
<template> <div class="mydiv"> <h3>test-slot</h3> <!-- 父元件裡的span會替換掉slot所以這裡的123是看不見的 --> <!-- 如果父元件在使用子元件testSlot的時候不在裡面加內容則這裡的slot會顯示出來 --> <!-- <slot>123</slot> --> <p>=================================</p> <!-- <h3>站位指定名稱放入</h3> --> <div class="noneSlot"> <slot></slot> </div> <div class="test-two"> <slot name="two"></slot> </div> <div class="test-one"> <slot name="one"></slot> </div> <p>=================================</p> <table class="pre_tab"> <tbody> <slot name="tab_title"></slot> <slot name="tab_tr" v-for="data_tr in data_tab" :item="data_tr"></slot> </tbody> </table> </div> </template> <script> export default { name:"test_slot", data(){ return { data_tab: [], } }, props:{ pre_data_tab:Array, }, watch:{ pre_data_tab(val){ this.data_tab=val; console.log(this.data_tab); } }, methods:{ lookdata:function(td){ } } } </script> <style scoped> .mydiv { width: 100%; text-align: center; } .pre_tab { width: 100%; text-align: center; background-color: yellowgreen; } </style>
呼叫部分
<template> <div id="app"> <test-slot :pre_data_tab="data"> <!-- <span>我是父元件裡的文字,但是我要被放到子元件裡</span> --> <!-- slot=one這個div會替換掉子元件裡name="one"的slot標籤 --> <div slot="one"> <span>one</span> <span>第一個</span> </div> <!-- 這個div沒有用slot指定名字所以會替換掉子元件裡沒有name屬性的slot標籤 --> <div> <span>此div沒有slot ,slot如果沒有名稱,則會多次放入</span> </div> <!-- slot=two這個div會替換掉子元件裡name="two"的slot標籤 --> <div slot="two"> <span>two</span> <span>第二個</span> </div> <!-- 設定標題 --> <template slot="tab_title"> <tr> <th>ID</th> <th>名稱</th> <th>地址</th> </tr> </template> <!-- user 相當於一個wrapper,容器 --> <!-- user.item 對應 子元件的 :item="data_tr" 這裡 item --> <!-- table可以封裝到 表格,資料載入,重新整理,分頁 只需要傳入URL就可以了 具體的增刪改業務 單獨完成 --> <template slot="tab_tr" slot-scope="user"> <tr> <td>{{ user.item.id }}</td> <td class="td_name">{{ user.item.name }}</td> <td>{{ user.item.addr }}</td> <td><button @click="fun_add(user.item)">增加</button></td> </tr> </template> </test-slot> <button @click="loaddata">載入資料</button> </div> </template> <script> export default { data(){ return { data:[] } }, components:{ "test-slot": () => import("./children/testSlot") }, created:function(){ this.loaddata(); }, methods:{ loaddata:function(){ this.data=[ {id:"1",name:"tom",addr:"usa"}, {id:"2",name:"小明",addr:"陝西"}, {id:"3",name:"小花",addr:"山西"} ]; console.log('模擬初始化資料完畢'); }, fun_add:function(item){ console.log(item.id+' '+item.name+' '+item.addr); } } } </script> <style> .my_title { background-color: aqua; margin-right: 20px; text-align: center; font-size: 16px; } .td_name { color: red; font-size: 20px; } </style>
執行結果和過程。
相關推薦
vue元件系列4、Table封裝上
開發十年,就只剩下這套架構體系了! >>>
vue元件系列4、Table封裝下
開發十年,就只剩下這套架構體系了! >>>
vue元件系列2、拖放上傳
開發十年,就只剩下這套架構體系了! >>>
VUE元件系列7:Table封裝3
前面寫的Table封裝,只是省了一部分事情,還是需要通過slot配置表結構,沒有達到一開始的想法: 只配置一個載入url和一個增
vue元件系列6、雙向繫結方法
開發十年,就只剩下這套架構體系了! >>>
PADS學習2(封裝:元件型別PART 、邏輯封裝庫CAE)
altium designer中封裝的型別很簡單:包括元器件封裝(原理圖)、PCB封裝(PCB圖)。在元器件封裝中可以直接選用所需的PCB封裝。 PADS中,使用元件型別PART表示一個完整器件。PART中可以選擇所需的PCB封裝與CAE封裝。用慣了altium designer的人,剛
Vue元件化(全域性、區域性)、props傳參
目錄 全域性元件化 區域性元件化 全域性元件化 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Do
JS元件系列——在ABP中封裝BootstrapTable
前言:關於ABP框架,博主關注差不多有兩年了吧,一直遲遲沒有嘗試。一方面博主覺得像這種複雜的開發框架肯定有它的過人之處,系統的穩定性和健壯性比一般的開源框架肯定強很多,可是另一方面每每想到它繁瑣的封裝和複雜的開發流程就望而卻步,就這樣遲遲沒有行動。最近在專案裡面用到了ABP框架,沒辦法,只有硬著頭皮上了。經
基於vue element 封裝上傳元件
基於vue element封裝的上傳元件 使用方法: 1.首先引入該元件 2.註冊元件 3.頁面使用 4.回撥函式(如需其他回撥自行封裝 因為我暫時沒用到其他的 哈哈哈) <template>
VUE 餓了麼元件 1.4 table 屬性之一
<el-table :data="Data.list" style="width: 100%" tooltip-effect="light"> 程式碼中有二點介紹 :data 繫結的資料是 VUE 的 data.list 模板樣式風格是淺色系的。 tooltip
Vue開發——封裝上傳檔案元件
使用elementui的 el-upload外掛實現圖片上傳元件每個專案存在一定的特殊性,所以資料的處理會不同 pictureupload.vue:<template> <div
史上最全面的SignalR系列教程-4、SignalR 自託管全解(使用Self-Host)-附各終端詳細例項
1、概述 通過前面幾篇文章 史上最全面的SignalR系列教程-1、認識SignalR 史上最全面的SignalR系列教程-2、SignalR 實現推送功能-永久連線類實現方式 史上最全面的SignalR系列教程-3、SignalR 實現推送功能-集線器類實現方式 我們對SignalR的概念以及SignalR
封裝Vue Element的可編輯table表格元件
前一段時間,有博友在我那篇封裝Vue Element的table表格元件的博文下邊留言說有沒有那種“表格行內編輯”的封裝元件,我當時說我沒有封裝過這樣的元件,因為一直以來在實際開發中也沒有遇到過這樣的需求,但我當時給他提供了一個思路。 時間過去了這麼久,公司的各種需求也不停地往外冒,什麼地圖圖表、表格行內編
PHP面向對象的三大特征操作——封裝、繼承、多態(上)
function 有一個 私有 urn 變量賦值 魔術方法 var public 安全 <?php //三大特征:封裝、繼承、多態 //封裝做法:1.將成員變量變為私有2.在類中做方法間接操作成員變量3.在方法裏加控制條件 //封裝目的:使類更加安全/* class
[js高手之路]深入淺出webpack教程系列4-插件使用之html-webpack-plugin配置(上)
技術 輸出 js函數 動態生成 git tro mon ebp 執行 還記得我們上文中的index.html文件嗎? 那裏面的script標簽還是寫死的index.bundle.js文件,那麽怎麽把他們變成動態的index.html文件,這個動態生成的index.html文
Vue.js系列之vue-router(上) (轉載自向朔1992)
app 指定 路徑和 其他 發現 掛載 我只 router mine 概述 Vue非常適用於實踐單頁面應用程序也就是平時大家說的比較多的SPA(single page application),這點應該了解過Vue的應該都知道吧。一般的單頁面應用是基於路由或頁面之間的鏈接來
git的下載、項目上傳與拷貝+vue-cli的使用
es2017 cli vue alt block 圖片 img right isp git的下載、項目上傳與拷貝+vue-cli的使用
4、計算機的存儲之內存 - 計算機硬件學習系列文章
強制 好的 tun 全部 命中 ddr area 出廠 兼容性 內存是計算機中重要的部件之一,它是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。內存(Memory)也被稱為內存儲器,其作用是用於暫時存放CPU中的運算數
vue元件開發之導航選單元件封裝
執行結果: 呼叫程式碼部分: <template> <div id="app"> <menu-bar :list="list" @click="menuClick"></menu-bar> <!--fir
4、對各頁面元素及方法進行封裝
所謂的POM(Page Object Model)設計模式其實就是把一個頁面當作一個物件,將一個頁面中的所有元素及方法封裝在一個java類中。 下面封裝了3個頁面的元素: 依次開啟看看吧。 1、home_baidu.py # -*- coding:utf-8 -*- from fra