zoukankan      html  css  js  c++  java
  • VUE笔记

    本例要结合过渡动画四个过程的示意图一起理解。

    https://cn.vuejs.org/v2/guide/transitions.html

    疑问:

    v-for="(item,i) in list"     del(i) 传参不传id,改成i ,这个是什么用法?

      <style>
      li{
        border: 1px dashed #999;
        margin: 5px;
        padding: 5px;
        line-height: 25px;
        font-size: 12px;
        width: 800px;
      }
      li:hover{
        background-color: hotpink;
        transition: all 0.8s ease;
      }
      .v-enter,.v-leave-to {
        /* .v-enter, .v-leave-to 设置的过渡样式
        自动赋给transition 或 transitiongroup标签了 */
        opacity: 0;
        transform: translateY(80px);
      }
      .v-enter-active, .v-leave-active {
        /* .v-enter-active, .v-leave-active 设置的过渡样式
        自动赋给transition 或 transitiongroup标签了 */
        transition: all 0.6s ease;
      }
      .v-move{ 
        transition: all 0.6s ease;
      }
      /* v-move 特性。会在元素的改变定位的过程中应用。
           比如列表中有元素被删除,其他元素会上移
           设置了v-move就会在这起作用. */
    
      .v-leave-active{
        position: absolute;
        /* 当元素设置了  absolute  后,默认就不是100%的宽度了,而是内容多宽就是多宽
           所以要给li元素设置一下宽度. */
      }
      /* 用splice删除数组的元素,由于删除的元素经历了一个过渡,始终占据文档流的这个位置,
      因此下一个元素要等待其过渡消失后再移动过来,造成一个生硬的效果。
    
      要达到平滑过渡,就要在删除元素leave-active阶段,
      用position:absolute 让删除的元素脱离文档流,后面的元素才能同时平滑过渡过来。
     */
      </style>
    </head>
    <body>
      <div id="app">
        ID:<input type="text" v-model="id">
        NAME:<input type="text" v-model="name">
        <input type="button" value="添加" @click="add()">
    
        <!-- 通过 appear 特性设置节点的在初始渲染的过渡
             也就是页面刚加载的时候,实现过渡动画 -->
        <transition-group tag="ul" appear>
          <li v-for="(item,i) in list" @click="del(i)" :key="item.id">
              <!-- v-for="(item,i) in list"  
               del(i)   传参不传id,改成i    ??? 这个是什么用法-->
              {{item.id}} --- {{item.name}}
          </li>
        </transition-group>
      </div>
    
      <script>
      var vm = new Vue({
        el:'#app',
        data:{
          id:'',
          name:'',
          list:[
            {id:1, name:'赵高'},  // list里用到的id name 等,要先定义在data
            {id:2, name:'秦桧'},
            {id:3, name:'严嵩'},
            {id:4, name:'魏忠贤'}
          ]
        },
        methods:{
          add(el){
            this.list.push({id:this.id, name:this.name});
            this.id = this.name = '';
          },
          del(i){
            this.list.splice(i,1); // i 的用法??
          },
        },
      });
      </script>
    </body>
  • 相关阅读:
    P4718 [模板]Pollard-Rho算法
    python爬虫模板
    Codeforces1248F. Catowice City
    P3980 [NOI2008]志愿者招募 (费用流)
    P2805 [NOI2009]植物大战僵尸 (拓扑排序 + 最小割)
    P3157 [CQOI2011]动态逆序对
    P2634 [国家集训队]聪聪可可 (点分治)
    HDU6703 array (线段树)
    Codeforces750E. New Year and Old Subsequence (线段树维护DP)
    Codeforces301D. Yaroslav and Divisors
  • 原文地址:https://www.cnblogs.com/carpenterzoe/p/10292082.html
Copyright © 2011-2022 走看看