首页 > 其他分享 >Vue30_实例2

Vue30_实例2

时间:2024-06-20 16:42:38浏览次数:27  
标签:el Vue created Vue30 vm 实例 data

目标:了解Vue实例生命周期,生命周期的钩子函数及created函数常用场景

分析:在创建vue实例的时候可以制定模板id、数据和方法;而如果要在实例化、模板渲染的过程中需要执行一些其它操作的话,那么可以使用钩子函数。

一、创建Vue实例

 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的: 

var vm = new Vue({
  // 选项
})

 在构造函数中传入一个对象,并且在对象中声明各种Vue需要的数据和方法,包括:

  • el
  • data
  • methods ...  

 接下来一 一介绍。

 

 

二、模板或元素

 每个Vue实例都需要关联一段Html模板,Vue会基于此模板进行视图渲染;可以通过el属性来指定。

 例如一段html模板:

<div id="app">
    
</div>

 然后创建Vue实例,关联这个div 

var vm = new Vue({
 el:"#app"
})

 这样,Vue就可以基于id为 app 的div元素作为模板进行渲染了。在这个div范围以外的部分是无法使用vue特性的。

 

 

三、数据

 当Vue实例被创建时,它会尝试获取在data中定义的所有属性,用于视图的渲染,并且监视data中的属性变化,当 data发生改变,所有相关的视图都将重新渲染,这就是“响应式“系统。

 html:

<div id="app">
    <input type="text" v-model="name"/>
</div>

 js:

var vm = new Vue({
    el:"#app",
    data:{
        name:"黑马"
   }
})
  • name的变化会影响到 input 的值
  • input中输入的值,也会导致vm中的name发生改变

 

 

四、方法

 Vue实例中除了可以定义data属性,也可以定义方法,并且在Vue的作用范围内使用。

 html: 

<div id="app">
    <button v-on:click="add">点我</button>
</div>

 js:

var vm = new Vue({
    el:"#app",
    data:{
   },
    methods:{
        add:function(){
            console.log("点我了...233")
       }
   }
})

 

 

五、生命周期钩子

 1、生命周期

  每个 Vue 实例在被创建时都要经过一系列的初始化过程 :创建实例,装载模板,渲染模板等。Vue为生命周期中的每个状态都设置了钩子函数(监听函数)。每当Vue实例处于不同的生命周期时,对应的函数就会被触发调用。 

所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味
着你不能使用箭头函数来定义一个生命周期方法 (例如 created: () => this.fetchTodos() )。这是因为箭
头函数绑定了父上下文,因此 this 与你期待的 Vue 实例不同, this.fetchTodos 的行为未定义。

  生命周期: 

   

vm.$el :Vue 实例使用的根 DOM 元素
vm.$root :当前组件树的根 Vue 实例。如果当前实例没有父实例,此实例将会是其自己。

 

 

 2、钩子函数

  例如:created代表在vue实例创建后;

  可以在Vue中定义一个created函数,代表这个时期的构造函数:  

  创建示例html页面02-lifecycle.html如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vuejs测试</title>
    <script src="node_modules/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
   {{msg}}
</div>
<script>
    let app = new Vue({
        el:"#app",
        data:{
            //初始化为空
            msg:""
       },
        created(){
            this.msg = "hello vue. created";
       }
   });
</script>
</body>
</html>

  结果:

 

 

 

 3、this

  可以看下在vue内部的this变量是谁,在created的时候,打印this 

let vm = new Vue({
    el:"#app",
    data:{
        //初始化为空
        msg:""
   },
    created(){
        this.msg = "hello vue. created";
        console.log(this);
   }
})

  控制台的输出: 

   

  总结: this 就是当前的Vue实例,在Vue对象内部,必须使用 this 才能访问到Vue中定义的data内属性、方法等。

 

标签:el,Vue,created,Vue30,vm,实例,data
From: https://www.cnblogs.com/ajing2018/p/18258969

相关文章

  • JDBC实例:执行遍历查询操作,并打印查询结果
     //导入了Java的SQL包importjava.sql.*;publicclassMain{publicstaticvoidmain(String[]args)throwsException{//注册MySQL的JDBC驱动Class.forName("com.mysql.jdbc.Driver");//连接自己的数据库,我连接了数据库“pinta”St......
  • python队列实例解析
    一队列的概念1创建队列:importqueueq=queue.Queue()#创建Queue队列 2入队和出队foriinrange(3):q.put(i)#在队列中依次插入0、1、2元素foriinrange(3):print(q.get())#依次从队列中取出插入的元素,数据元素输出顺序为2、1、0......
  • 通过阿里云OOS定时升级EIP实例临时带宽
    功能背景随着业务的不断发展和互联网应用场景的多样化,企业或个人用户在特定时间段内面临网络流量剧增的挑战变得尤为常见。这些流量高峰,如大规模促销活动、热门直播事件、重大新闻发布或季节性数据备份等场景,往往会导致原有带宽瞬间饱和,影响用户体验甚至导致服务短暂不可用。......
  • 初学51单片机之PWM实例呼吸灯以及遇到的问题(已解答)
    PWM全名PulseWidthModulation中文称呼脉冲宽度调制如图这是一个周期10ms、频率是100HZ的波形,但是每个周期内,高低电平宽度各不相同,这就是PWM的本质。占空比是指高电平占整个周期的比列,上图第一个波形的占空比是40%,第二个是60%,第三个是80%。本案将以PWM控制来制作一个呼......
  • 函数模板与类模板深入解析及实例
    目录函数模板类模板类模板成员函数的实例化类模板的静态成员全局特化与成员特化缺省模板参数与数值形式的模板参数结论 函数模板函数模板允许我们编写适用于多种数据类型的通用函数。以下是函数模板的定义和使用示例:template<typenameT>Tmax(Ta,Tb){......
  • nginx四层+七层分享代理实现与tomcat多实例动静分离
     实验架构图如下,最终实现负载均衡和动静分离:一、Tomcat多实例1.配置思路1)修改tomcat主配置文件server.xml中的三个端口号808080058009;2)修改tomcat启动停止脚本startup.shshutdown.sh,添加exportCATALINABASECATALINAHONETOWCATHOME变量都指向实例的工作......
  • js实例对象读写原型对象成员
    在JavaScript中,实例对象可以读写原型对象的成员。原型对象是一个对象,用于存储共享的属性和方法,它是通过构造函数创建的实例对象的共享属性和方法的来源。你可以通过以下几种方式来读写原型对象的成员:通过实例对象的__proto__属性来读取原型对象的成员。__proto__属性指向......
  • python字符串的一些操作实例
    已知字符串a=“aAsomr3idd4HGHbigs7Dlsf9YeAF”,要求如下1.请将a字符串的大写改为小写,小写改为大写。2.将a字符串的数字取出,并输出成一个新的字符串。3.将a字符串中的内容反向输出4.打印a字符串中所有奇数位上的字符(下标是1,3,5,7…位上的字符)5.将a字符串的所有偶数位上......
  • gorm的related理解和实例
    packagemainimport( "fmt" _"github.com/go-sql-driver/mysql" "github.com/jinzhu/gorm")var( dev_db="aplum:plum2016@tcp(localhost:3306)/aplum?charset=utf8" local_db="root:123456@tcp(localhost:3......
  • Redis单实例安装
    Redis单实例安装Redis(RemoteDictionaryServer)是一个开源的内存数据库,遵守BSD协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。性能极高:Redis以其极高的性能而著称,能够支持每秒数十万次的读写操作24。这使得Redis成为处理高并发......