1. 程式人生 > >使用vue元件來寫一個摺疊面板

使用vue元件來寫一個摺疊面板

一、之前在寫摺疊面板時都是使用的JQ的slideToggle,昨天對這一塊程式碼進行重構,使用vue來進行開發
二、附上之前的程式碼段
for (var i = 0; i < ret.rows.length; i++) {
var liId = 'li' + i,
divId = 'div' + i;
var data = '應出勤:' + ret.rows[i].empNum + ', 實出勤:' + ret.rows[i].onworkNum + ', 請假:' + ret.rows[i].vacNum + ', 出差:' + ret.rows[i].otNum + ', 缺卡:' + ret.rows[i].nocardNum;
var li = document.createElement('li');
li.innerHTML = '<div class="cp-depart" id="' + liId + '"><div class="cp-depart-p">' + ret.rows[i].departName + ' 出勤率:' + (ret.rows[i].onworkNum / ret.rows[i].empNum * 100).toFixed(2) + '%</div></div>';
var kqdata = document.createElement('li');
kqdata.innerHTML = '<div class="cp-p" id="' + divId + '">' + data + '</div></br>';
a.appendChild(li);
a.appendChild(kqdata);
}
document.getElementById('li0').onclick = function() {
$('#div0').slideToggle();
}
三、使用vue重構時寫的demo
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue元件實現摺疊面板</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<script src="http://cdn.bootcss.com/vue/2.0.3/vue.js"></script>
</head>
<body>
<div id="app">
<div v-for="i in mainData">
<c1 :item="i">
<p>{{ i }}</p>
</c1>
</div>
</div>
<template id="c1">
<div>
<button type="button" @click="open=!open">{{ open ? 'hide' : 'show' }}</button>
<div v-show="open">
<slot></slot>
</div>
</div>
</template>


<script>
Vue.component('c1', {
template: '#c1',
data() {
return {
open: true
}
}
})


var vm = new Vue({
el: '#app',
data: {
mainData:[1,2,3,4]
}
})
</script>
</body>
</html>
四、效果圖
之前上傳圖片都不顯示,這裡把上面的demo在網頁裡面開啟即可,

相關推薦

使用vue元件一個摺疊面板

一、之前在寫摺疊面板時都是使用的JQ的slideToggle,昨天對這一塊程式碼進行重構,使用vue來進行開發 二、附上之前的程式碼段 for (var i = 0; i < ret.rows.length; i++) { var liId = 'li' + i, d

使用TypeScript給Vue 3.0一個指令實現元件拖拽

最近在用vue3重構後臺的一個功能。一個彈窗元件,彈出一個表單。然後點選提交。 早上運維突然跑過來問我,為啥彈窗擋住了下邊的表格的資料,我新增的時候,都沒法對照表格來看了。你必須給我解決一下。 我參考了一下幾大Vue的ui元件庫。發現element iview antv。好像都沒這個功能。為啥運維需要這個

Vue.js開發一個電影App的前端部分

column 多種方式 -a 目標 部分 cli 多路由 cdn tor 我們要構建一個什麽樣的App? 我們大多數人使用在線流媒體服務(如Netflix)觀看我們最喜歡的電影或者節目。這篇文章將重點介紹如何通過使用vue.js 2建立一個類似風格的電影流媒體WEB交互界

一個輪播圖

wid HR off IT IE hid mpat 使用 3rd 輪播圖一直都是JS的經典實現: 有以下要素: 1.html和css布局的考察 浮動, 定位等 2.Dom操作 3.定時器使用與清除 4.遞歸函數的使用 下面是源代碼 <!DOCTYPE html&

vue-cli中一個數量加減

vue實現汽車購票的加減 需求:最少減到1,減到1時顏色變灰並且不讓再減,最大加到5,顏色變灰並且不再讓加,效果如下: html程式碼: <template> <div> <div class="zk-order"

vue-cli搭建一個vue專案

用控制檯生成vue專案 在控制檯中輸入vue init webpack project(自己取的專案名稱) “project1”是自己取的專案名稱 下面的: “Project name”寫專案的名稱,不可以出現大寫字母否則會報錯 "Project descri

vue+Element-ui一個後臺管理介面,點選頭部導航對應顯示下方左側導航選單,點選左側選單對應顯示右邊內容,點選右邊內容的按鈕出現一個新頁面依舊能夠選中左側相應選單,求解決???!!!!

vue-路由 用vue+Element-ui寫一個後臺管理介面,點選頭部導航對應顯示下方左側導航選單,點選左側選單對應顯示右邊內容 但是點選新建微帖路由出現一個新頁面,左側選單怎麼才能顯示被選中狀態,就是跟上圖狀態一樣??? 這裡是左側選單導航和右邊內容顯示區域程式碼 這裡是頁面按鈕

用Python一個男女相親小程式|碼農的情人節

碼農這個群體,高學歷,高工資,高智商,但是不善於交流,圈子也很小,相信很多小夥伴或者周圍的小夥伴,都有相親的經歷,或者被父母逼去相親的經歷,一般都是問年齡,你要找什麼樣的,有的還特講究生肖匹配,記得網上有一個段子,說男的20-60歲都只喜歡一種型別的女孩,而20歲到60歲的女孩相親需求卻不斷

用繼承一個小故事

package com.zr.java.textam; public class TextAm {public static void main(String[] args) {// TODO Auto-generated method stubxigua axigua = new xigua();axigu

vue.js如何一個簡單的原生js模組,瀏覽器中的表現如何?

請點選此處輸入圖片描述瀏覽器正在逐步的支援原生JavaScript模組。Safari和Chrome的最新版本已經支援它們了,Firefox和Edge也將很快推出。如果您是一個vue.js使用者,那關於JavaScript模組一個很酷的事就是他們允許您編寫您的元件到自己的檔案中

誒~一個遞迴函式 輸入一個非負整數 返回組成它的數字之和

寫一個遞迴函式DigitSum(n),輸入一個非負整數,返回組成它的數字之和 例如,呼叫DigitSum(1729),則應該返回1+7+2+9,它的和是19 理性分析一波 非負整數 返回組成它的數字之和 冷靜思考 反覆思考 上個廁所 吃個香蕉 喝杯咖啡 玩會兒手機 誒~真的

Vue開源庫iview中摺疊面板

   首先,整個Collapse元件統一由collapse.vue管理,它的模板中包含一個插槽,給每一個面板提供空間,同時collapse.vue是整個元件的管理者,它將決定面板的顯示狀態(即:在collapse.vue檔案中修改panel的資料)。    而panel

如何使用Vue.js搭建一個後臺管理系統

目錄 使用的技術 基礎但不好版 1.初始化專案 2.實現初始頁內容自定義 3.使用路由 原始程式碼 自建頁面 修改路由

vue一個仿app下拉重新整理的元件

如果你用vue弄移動端的頁面,那麼下拉重新整理還是比較常見的場景,下面來研究如何寫一個下拉重新整理的元件(先上圖); 由於節省大家的時間,樣式就不貼出來了。 html結構也不必介紹了,直接看程式碼吧-.- <transition> &

vue一個商城的上貨元件(簡單易懂版,50行js實現效果)

0、結果放前面 加個Star後,fork下來。 然後在控制檯,先輸入npm install安裝依賴,再輸入npm run dev執行檢視效果 1、先列需求 一切開發都是基於需求做的,所以需求先行,根據需求設計功能。 需求如下: 上貨商品有多

老弟,了?VUE+Nuxt.js+Koa+Vuex入門教程(一)仿一個cnode網站

if(有工作){ if(工作地址 == "深圳" || 工作地址 == "廣州" ){ do(請聯絡作者,qq:1172081598) } } 何為Nuxt.js Nuxt.js是一個vue的服務端渲染的框架,集成了express框架,sass/less框架等等,u

將自己vue元件整理成外掛,通過vue.use使用

1,在main.js中引入components import components from './components' Vue.use(components) 2,外掛放到components資料夾中 3,components資料夾新建index.js檔案,註冊外

Vue.js 3.0搭配.NET Core一個牛B的檔案上傳元件

在開發Web應用程式中,檔案上傳是經常用到的一個功能。 在Jquery時代,做上傳功能,一般找jQuery外掛就夠了,很少有人去探究上傳檔案外掛到底是怎麼做的。 簡單列一下我們要做的技術點和功能點 ## 使用技術 客戶端使用vue.js 3.0,並使用vue3新增的功能:**Composition API**

一個函數獲取一個網頁中用到的html標簽有多少種

作用 source con class pos ... log 知識點 cto 代碼段 const getTagNameNum = () => { return new Set([...document.querySelectorAll(‘*‘)].map(el

一個簡單vue 中間件,$emit、$on

發布-訂閱模式 pre 原理 lse 取出 als new on() 訂閱 前言 使用過vue的同學大多數都知道$emit 與$on的使用。我們僅僅知道使用,有時候是完全不夠的。現在我就帶領大家寫一個簡單類似於vue空實例的中間件。 非父子組件的通信 非父子組件的通信vue