时间:2021-07-01 10:21:17 帮助过:6人阅读
本文为大家分享了Vuejs 组件化开发tab组件实例,供大家参考,具体内容如下
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>index</title>
- <link rel="stylesheet" href="css/index.css" >
- <script type="text/javascript" src="../lib/vue.min.js"></script>
- <script type="text/javascript" src="../lib/jquery-1.11.3.min.js"></script>
- <style>
- * {
- margin: 0;
- padding: 0;
- }
- #tabPanel .itemname {
- height: 40px;
- width: 180px;
- margin-bottom: 10px;
- }
- #tabPanel .itemcontent {
- height: 40px;
- width: 180px;
- }
- #tabPanel .addbtn {
- margin: 10px 0 0 95px;
- width: 185px;
- height: 40px;
- }
- #tabPanel .active {
- background: #eee;
- }
- #tabPanel {
- height: 340px;
- width: 500px;
- margin: 100px auto;
- }
- #tabPanel .tab {
- height: 40px;
- background: #ccc;
- margin-top: 10px;
- }
- #tabPanel .tab ul li {
- list-style: none;
- float: left;
- width: 80px;
- height: 40px;
- text-align: center;
- line-height: 40px;
- }
- #tabPanel .content {
- height: 300px;
- width: 500px;
- background: #eee;
- }
- </style>
- </head>
- <body>
- <div id="tabItem">
- <my-tab></my-tab>
- <my-tab></my-tab>
- </div>
- <!--组件模板-->
- <script type="text/template" id="tab">
- <div id="tabPanel">
- <label>添加滑块名称:<input type="text" v-model="tabItem" class="itemname"></label><br>
- <label>添加滑块内容:<input type="text" v-model="tabContent" class="itemcontent"></label><br>
- <input type="button" value="添加选项" @click="addItem()" class="addbtn">
- <div class="tab">
- <ul>
- <li v-for="(value, index) in tabs" v-bind:class="{active: index == num }" @mouseover="toggle(index)" @dblclick="del(index)">{{value}}</li>
- </ul>
- </div>
- <div class="content">
- <div class="box" v-for="(value, index) in tabContents" v-show="index == num" contenteditable="true" @blur="editContent(index,value)">{{value+index}}</div>
- </div>
- </div>
- </script>
- <!--组件模板-->
- </body>
- </html>
- <script>
- var vue = new Vue({
- el: "#tabItem",
- data: {
- },
- components: {
- 'my-tab': {
- template: '#tab',
- data: function() {
- return {
- tabs: ["第一项", "第二项"],
- tabContents: ["第一项内容", "第二项内容"],
- num: 0,
- tabItem: "",
- tabContent: ""
- }
- },
- methods: {
- //切换滑块
- toggle: function(index) {
- this.num = index;
- },
- //添加滑块
- addItem: function() {
- if (this.tabItem == "" || this.tabContent == "") {
- alert("填写完整的名称和内容");
- } else {
- this.tabs.push(this.tabItem);
- this.tabContents.push(this.tabContent);
- }
- },
- //双击删除滑块
- del: function(index) {
- this.tabs.splice(index, 1);
- this.tabContents.splice(index, 1)
- },
- //编辑选项内容
- editContent: function(index, value) {
- this.tabContents[index] = value;
- console.log(this.tabContents);
- }
- }
- }
- }
- });
- </script>
如果大家还想深入学习,可以点击两个精彩的专题:javascript选项卡操作方法汇总 jquery选项卡操作方法汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。