初识 Vue(27)---(Vue 中的列表过渡)

简介: Vue 中的列表过渡功能:有一个列表项,循环显示数组中的数 Vue 中的列表过渡 {{item.

Vue 中的列表过渡

功能:有一个列表项,循环显示数组中的数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue 中的列表过渡</title>
    <script src = './vue.js'></script>
</head>
<body>
    <div id ='root'>
      <div v-for="item of list" :key="item.id">
        {{item.title}}
      </div>
      <button @click="handleBtnClick">Add</button>
    </div>

    <script>
     var count = 0;  //计数器
     var vm = new Vue({
        el:'#root',
        data:{
            list:[]
        },
        methods:{
            handleBtnClick:function(){
                this.list.push({
                  id: count++,
                  title:'hello world'
                })
            }
    
        
       }
    })
    </script>   
</body>
</html>

输出:点击---添加hello world

      

功能:向每次添加数的过程中添加动画效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue 中的列表过渡</title>
    <script src = './vue.js'></script>
    <style>
     .v-enter,.v-leave-to{
      opacity:0;
     }
     .v-enter-active,.v-leave-active{
      transition: opacity 1s;
     }
   </style>
</head>
<body>
    <div id ='root'>
      <transition-group>
        <div v-for="item of list" :key="item.id">
        {{item.title}}
        </div>
      </transition-group>
      <button @click="handleBtnClick">Add</button>
    </div>

    <script>
     var count = 0;  //计数器
     var vm = new Vue({
        el:'#root',
        data:{
            list:[]
        },
        methods:{
            handleBtnClick:function(){
                this.list.push({
                  id: count++,
                  title:'hello world'
                })
            }
    
        
       }
    })
    </script>   
</body>
</html>

输出:点击---添加hello world(1秒完全出现)

        

<transition-group>标签

原理:<div>{{item.title}}</div>  经过循环后,会变为数个 <div> hello world </div>,挡在列表的外层加入<transition-group>标签,相当于给每个<div> hello world </div>加上<transition>标签,即<transition><div> hello world </div></transition>,就将列表的过渡转换成了单个元素的过渡,Vue 会动态地在元素显示和隐藏时添加 class,在前面设置了class所对应的内容

<style>
     .v-enter,.v-leave-to{
      opacity:0;
     }
     .v-enter-active,.v-leave-active{
      transition: opacity 1s;
     }
   </style>

则每个 div 就有了自己的动画

目录
相关文章
|
2天前
|
JavaScript
vue页面加载时同时请求两个接口
vue页面加载时同时请求两个接口
|
2天前
|
JavaScript
vue里样式不起作用的方法,可以通过deep穿透的方式
vue里样式不起作用的方法,可以通过deep穿透的方式
10 0
|
2天前
|
移动开发 JavaScript 应用服务中间件
vue打包部署问题
Vue项目`vue.config.js`中,`publicPath`设定为&quot;/h5/party/pc/&quot;,在线环境基于打包后的`dist`目录,而非Linux的`/root`。Nginx代理配置位于`/usr/local/nginx/nginx-1.13.7/conf`,包含两个相关配置图。
vue打包部署问题
|
1天前
|
JavaScript
vue打印v-model 的值
vue打印v-model 的值
|
1天前
|
移动开发 前端开发
VUE3一种用户可以设置显示隐藏列表内容的方法
VUE3一种用户可以设置显示隐藏列表内容的方法
|
2天前
|
JavaScript
Vue实战-组件通信
Vue实战-组件通信
4 0
|
2天前
|
JavaScript
Vue实战-将通用组件注册为全局组件
Vue实战-将通用组件注册为全局组件
5 0
|
2天前
|
JavaScript 前端开发
vue的论坛管理模块-文章评论02
vue的论坛管理模块-文章评论02
|
2天前
|
JavaScript Java
vue的论坛管理模块-文章查看-01
vue的论坛管理模块-文章查看-01