首页 > 其他 > 详细

vue之菜单添加选择,知识:数据双向绑定、循环渲染、事件点击

时间:2018-12-19 16:25:32      阅读:158      评论:0      收藏:0      [点我收藏+]

要求:

1.可以增加菜名

2.可以删除菜名

3.点击选择菜名后自动增加到已选菜单中

4.可以在已选菜单中取消选择

 

代码:

<template>
  <div>
    <input type="text" ref="add">
    <button @click="addE()">增加菜名</button>
    <hr />
    <h2>当前菜名</h2>
    <ul>
      <li v-for="(item,key) in list" :key="key" v-if="!item.checked">
        <input type="checkbox" v-model="item.checked">{{item.title}} - - -
        <button @click="delE(key)">删除</button>
      </li>
    </ul>
    <hr />
    <h2>已选菜名</h2>
    <ul>
      <li v-for="(item,key) in list" :key="key" v-if="item.checked">
        <input type="checkbox" v-model="item.checked">{{item.title}} - - -
        <button @click="delE(key)">删除</button>
      </li>
    </ul>

  </div>
</template>


<script>
  export default {
    name: "app",
    data() {
      return {
        list:[
          {"title":"宫保鸡丁","checked":false},
          {"title":"鱼香肉丝","checked":false},
          {"title":"水煮肉片","checked":false},
          {"title":"辣条辣条","checked":false},
        ]
      }
    },
    methods:{
      delE(key){
        this.list.splice(key,1)
      },
      addE(){
        this.list.unshift({
          "title":this.$refs.add.value,
          "checked":false
        })
      }
    }
  }
</script>

演示:

1.初始化

技术分享图片

2.选择菜品

技术分享图片

3.删除菜品

技术分享图片

4.添加菜品

技术分享图片

 

 

要求:

在原基础上,实现 在添加菜名时输入完毕后按回车键进行添加,而不是点击按钮。

通过geikeydown来绑定点击事件,传递事件对象来实现

<template>
  <div>
    <input type="text" ref="add" @keydown="addE($event)">
    <button @click="addE($event)">增加菜名</button>
    <hr />
    <h2>当前菜名</h2>
    <ul>
      <li v-for="(item,key) in list" :key="key" v-if="!item.checked">
        <input type="checkbox" v-model="item.checked">{{item.title}} - - -
        <button @click="delE(key)">删除</button>
      </li>
    </ul>
    <hr />
    <h2>已选菜名</h2>
    <ul>
      <li v-for="(item,key) in list" :key="key" v-if="item.checked">
        <input type="checkbox" v-model="item.checked">{{item.title}} - - -
        <button @click="delE(key)">删除</button>
      </li>
    </ul>

  </div>
</template>


<script>
  export default {
    name: "app",
    data() {
      return {
        list:[
          {"title":"宫保鸡丁","checked":false},
          {"title":"鱼香肉丝","checked":false},
          {"title":"水煮肉片","checked":false},
          {"title":"辣条辣条","checked":false},
        ]
      }
    },
    methods:{
      delE(key){
        this.list.splice(key,1)
      },
      addE(e){
        if(e.keyCode === 13){
        this.list.unshift({
          "title":this.$refs.add.value,
          "checked":false
        })}
      }
    }
  }
</script>

 

vue之菜单添加选择,知识:数据双向绑定、循环渲染、事件点击

原文:https://www.cnblogs.com/zhangjunkang/p/10143945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!