首页 > 其他分享 >Vue框架:4、Vue生命周期,Vue组件

Vue框架:4、Vue生命周期,Vue组件

时间:2023-02-16 21:44:05浏览次数:35  
标签:生命周期 vue Vue 注册 组件 ###

目录

前端开发之Vue框架

一、Vue生命周期

1、vue生命周期是什么?

  • Vue生命周期是指vue实例对象从创建之初到销毁的过程,vue所有功能的实现都是围绕其生命周期进行的,在生命周期的不同阶段调用对应的钩子函数可以实现组件数据管理和DOM渲染两大重要功能。

2、vue生命周期的八个阶段

### 1.beforeCreate:
	会在实例初始化完成、props 解析之后、data() 和 computed 等选项处理之前立即调用。此时不能获得DOM节点。

### 2.created:
	在这个阶段vue实例已经创建,以下内容已经设置完成:响应式数据、计算属性、方法和侦听器。然而,此时挂载阶段还未开始,因此 $el 属性仍不可用。仍然不能获取DOM元素。

### 3.beforeMount:
	在组件内容被渲染到页面之前自动执行的函数,组件已经完成了其响应式状态的设置,但还没有创建 DOM 节点。

### 4.mounted:
	在组件被渲染之后自动执行的函数。一般我们的异步请求都写在这里。在这个阶段,数据和DOM都已被渲染出来。

### 5.beforeUpdate:
	数据变化的时候自动执行的函数,此时变化后的数据还未渲染到页面之上。

### 6.updated: 
	数据变化之后自动执行的函数,此时变化后的数据已经渲染到页面之上。

### 7.beforeUnmount:
	当 Vue 应用被销毁时,自动执行的函数。

### 8.unmounted:
	当 Vue 应用被销毁后,且 dom 完全销毁之后,自动执行的函数。

img

二、Vue组件

1、组件是什么

Vue的组件化设计思想借鉴了Java的面向对象思想。Java认为万物皆对象,在Vue中,万物皆组件。

也就是说,在实际的vue项目中,以及使用了Vue框架的项目中,Vue的对象都会以组件的形式出现,能被反复使用。

要想实现组件化,需要在页面中注册组件:关于注册的方式有两种,分别是全局注册和本地注册

2、全局组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue组件的全局注册</title>
</head>
<body>
    <div id="app">
        <model1></model1>
        <model1></model1>
        <model1></model1>
    </div>
        <hr/>
    <div id="app1">
        <model1></model1>
        <model1></model1>
        <model1></model1>
    </div>
</body>
<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
<script>
  //通过Vue.component实现组件的全局注册,全局注册后的组件可以被重复使用。
    Vue.component("model1",{
        template:"<div><h1>{{title}}</h1><button type='button' @click='btnfn'>点我</button></div>",
        data:function(){
            return {
                title:"hello vue"
            }
        },
        methods:{
            btnfn:function(){
                alert("hello !!!");
            }
        }
    });
    new Vue({
        el:'#app'
    })
    new Vue({
        el:'#app1'
    })
</script>
</html>

3、组件本地注册

vue的全局注册,也就意味着在页面的任意一个被vue绑定过的div中,都可以使用全局注册了的vue组件。

但是,如果是对vue组件进行本地注册,那么在其他被vue绑定的div中,不能使用该组件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue组件的本地(局部)注册</title>
</head>
<body>
    <div id="app">
        <model11></model11>
    </div>
  <hr/>
    <!--在这里使用组件model11会报错-->
    <div id="app1">
        <model11></model11>
    </div>
</body>
<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
<script>
    new Vue({
        el:'#app',
        components:{
            "model11":{
                template:"<div><h1>{{title}}</h1><button type='button' @click='btnfn'>点我</button></div>",
                data:function(){
                    return {
                        title:"hello vue"
                    }
                },
                methods:{
                    btnfn:function(){
                        alert("hello !!!");
                    }
                }
            }
        }
    })
    new Vue({
        el:'#app1'
    })
</script>
</html>

2、组件小结

这是一个完整的Vue组件。该组件包含了三个部分:template(html视图层内容)、script(Model层)、style(CSS样式)。这样封装好的组件可以被复用,也可以作为其他组件的组成部分而被封装——Java的面向对象再次体现。

●特点1: template标签内,必须有且只能有一个根标签。

●特点2: componet中注册的组件中的data,必须是已函数的形式。如下:

data:function(){
     return {
           title:"hello vue"
     }
 }

标签:生命周期,vue,Vue,注册,组件,###
From: https://www.cnblogs.com/kangssssh/p/17128433.html

相关文章

  • main(调用一个公共组件)
    app.vue<template> <div> <Student/> <School></School> </div></template><!-- 1.作用(mixin):将多个组件内相同的方法提取到一个混合对象 2.如何使用: 全局使......
  • vue 购物车案例
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jqu......
  • Vue_侦听器watch
    方法格式监听器在Vue的watch节点下data:{ username:'Exungsh'}watch:{ username(newVal,oldVal){ console.log(newVal,oldVal) } //如果要侦听的是对象的子......
  • Vue急速入门-3
    内容概要购物车小练习<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="vue/vue.js"></script><......
  • Vue项目安装less和less-loader
    第一步:查看webpack和webpack-cli是否安装打开cmd,通过命令查看webpack-vwebpack-cli-v   如果没有安装,要先进行安装可以通过npmviewwebpackversion/npm......
  • vue3+vant中自定义隐藏DropdownMenu下拉菜单
    一、概述需求:当点击确定按钮时隐藏下拉菜单。主要使用的方法:ref标识当前组件van-dropdown-item,当点击确定按钮时通过getCurrentInstance来获取组件身上的属性方法。......
  • 基于spring-boot-starter-JDBC组件的通用增删改查
    前言配合嵌入式数据库使用,比如H2,sqlite嵌入式关系型数据,很香!pom<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc......
  • vue学习之-----组件递归调用
    1、关键点2、父组件<template><div><divclass="btn-title"><el-button@click="addRule(ruleDataList.id)">添加父节点</el-button>......
  • vue项目,使用query传参,页面显示重新刷新或回归后数据丢失
    1、将需要传输的数据使用  JSON.stringify()  转译成字符串形式进行传输  2、在需要接收的页面使用  JSON.parse()  将数据格式再转回来即可使用,且刷新回......
  • drf回顾,前端发展历史,vue介绍,第一个helloword,插值语法
    目录drf回顾,前端发展历史,vue介绍,第一个helloword,插值语法今日内容概要今日内容详细1drf回顾2前端发展历史3vue介绍4第一个helloworld5插值语法drf回顾,前端发展历史,vu......