Vue2(生命周期,列表排序,计算属性和监听器)(二)

简介: Vue2(生命周期,列表排序,计算属性和监听器)

1.,6,代码演示

1.6-1,beforeCreate
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{myName}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    var app = new Vue({
        el:"#app",
        data(){
            return{
                myName:"abc"
            }
        },
        beforeCreate(){
            var bobyDom = document.getElementsByTagName("body")[0].innerHTML
            // beforeCreate中,data的数据是没有被定义的
            console.log("beforeCreate",this.myName,bobyDom);
        },
    })
</script>
</html>


d836f782d1627ea8d92e71bd8e890687_79761162e73b44c8bc2f6e09c3691757.png


1.6-2,created
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{myName}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    var app = new Vue({
        el:"#app",
        data(){
            return{
                myName:"abc"
            }
        },
        created(){
            var bobyDom = document.getElementsByTagName("body")[0].innerHTML
            // 做一下页面的数据初始化工作。比如说发起ajax请求
            console.log("created",this.myName,bobyDom);
        },
    })
</script>
</html>

9fa8b7e5560139a5acd5ace0e95fd1b5_f184f860bfb743bab656b4b26c117b26.png

1.6-3,beforeMount
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{myName}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    var app = new Vue({
        el:"#app",
        data(){
            return{
                myName:"abc"
            }
        },
        beforeMount(){
            var bobyDom = document.getElementsByTagName("body")[0].innerHTML
            console.log("beforeMount",this.myName,bobyDom);
        },
    })
</script>
</html>

e4a2b60f7656bc0f70df95f143669f34_961d97885c864002a2b546cda67ea3b5.png

1.6-4,mounted
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{myName}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    var app = new Vue({
        el:"#app",
        data(){
            return{
                myName:"abc"
            }
        },
        mounted(){
            var bobyDom = document.getElementsByTagName("body")[0].innerHTML
            // 数据已经渲染到View中
            console.log("mounted",this.myName,bobyDom);
        },
    })
</script>
</html>

f19a9af70724cefabc73ebc145c6a7be_d091f5dece764af689d31f20fada0c10.png

1.6-5,beforeUpdate
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{myName}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    var app = new Vue({
        el:"#app",
        data(){
            return{
                myName:"abc"
            }
        },
        beforeUpdate(){
            var bobyDom = document.getElementsByTagName("body")[0].innerHTML
            // 数据更新前,数据未改变
            console.log("beforeUpdate",this.myName,bobyDom);
        },
    })
</script>
</html>

5a615bfd36e77eaf13942561db8cf82c_cd29fc3272f14ee7abd94a7dc860e6bb.png

1.6-6,updated
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{myName}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    var app = new Vue({
        el:"#app",
        data(){
            return{
                myName:"abc"
            }
        },
        updated(){
            var bobyDom = document.getElementsByTagName("body")[0].innerHTML
            // 数据更新后,数据已改变
            console.log("updated",this.myName,bobyDom);
        }
    })
</script>
</html>

8b5860991a77577d4626cd2ee270e016_b2adc694498c43829c5ab298cf4b1b5a.png


1.7,生命周期函数的使用场景


  • 在beforeCreate生命周期函数运行时,可以添加loading动画
  • 在created生命周期函数运行时,可以结束loading动画,还可以做一些初始化,实现函数自执行等操作
  • 最经常使用的是mounted生命周期函数
  • 可以发起后端数据请求,取回数据
  • 可以接收页面之间传递的参数
  • 可以子组件向父组件传递参数等

相关文章
|
1天前
|
JavaScript 前端开发 容器
Vue 3 中 <transition-group> 组件报错的非 props 属性传递问题
Vue 3 中 <transition-group> 组件报错的非 props 属性传递问题
12 1
|
1天前
|
移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable扩展属性的升级修改
ruoyi-nbcio-plus基于vue3的flowable扩展属性的升级修改
|
1天前
|
移动开发 前端开发
VUE3一种用户可以设置显示隐藏列表内容的方法
VUE3一种用户可以设置显示隐藏列表内容的方法
|
3天前
|
JavaScript
深入理解Vue生命周期钩子及其应用
深入理解Vue生命周期钩子及其应用
5 0
|
4天前
|
缓存 JavaScript 开发者
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
9 0
|
4天前
|
JavaScript 前端开发
深入理解Vue生命周期钩子及其应用
深入理解Vue生命周期钩子及其应用
7 0
|
4天前
|
缓存 JavaScript
在 Vue 组件中使用计算属性和侦听器来响应路由变化
Vue Router 中,计算属性和侦听器常用于根据路由变化更新组件状态。计算属性缓存依赖,当路由参数改变时自动更新,如示例中的 `userId`。侦听器则监听 `$route` 变化,执行相应操作,例如在 `currentUserId` 示例中响应 `userId` 更新。计算属性适合简单变化,而异步操作或复杂场景可选用侦听器。Vue 3 中,`watchEffect` 减少了部分侦听场景的复杂性。总之,它们用于组件内部响应路由变化,而非直接处理路由逻辑。
12 4
|
16天前
|
JavaScript 前端开发 API
Vue生命周期:在虚拟世界的牵绊与自由
Vue生命周期:在虚拟世界的牵绊与自由
18 1
|
18天前
|
存储 JavaScript 前端开发
【Vue】绝了!这生命周期流程真...
【Vue】绝了!这生命周期流程真...
|
18天前
|
JavaScript
【vue】生命周期钩子函数的执行过程和父子组件钩子函数的执行顺序
【vue】生命周期钩子函数的执行过程和父子组件钩子函数的执行顺序
11 1