Vue的指令,生命周期,组件通讯

Vue入门开始需要了解的东西


vue常用的指令
如v-text,v-html,v-if,v-show,v-for……等等一类的vue指令,这些指令看似简单,但背后的逻辑需要了解,尤其现在关于vue面试经常会提到的问题,比如v-if和v-show的区别是什么,v-for和v-if在同一个标签内,执行顺序是怎样,诸如此类的问题都和vue指令相关。

vue的生命周期
要了解vue,就必须清楚知道vue的生命周期,好比一个人从生到死是怎么回事得知道,也更有利于coder实现对应业务功能。
类似于window.onload,vue提供了很多的生命周期函数(钩子函数),完整的将整个Vue对象从创建到销毁进行了细致的划分。
Beforecreat(创建之前)
Created (创建完成)
Beforemount (渲染之前)
Mounted(渲染之后)
Beforeupdata(数据修改前)
Updated(数据修改后)
Beforedestroy(对象销毁前)
Destroyed(对象销毁后)
这八个函数清晰的表述了Vue对象的生命周期,常用的created,mounted之类的函数也是在开发过程中会频繁使用到的。

vue的组件通讯
ps:学到这要具备相对扎实的JS功底,不然这里有可能会搞晕
关于组件通讯分两种,父子组件传值与非父子组件传值,分门别类说一下:
父子组件中又分父调子和子调父两种,很多人这里会晕一下,个人建议,用作用域的方式来区别:
子调父的方法最简单,只需在子组件内用props:[“attr1”,“attr2”],这样的方式,将需要调用的父组件数据写入即可直接在子组件内使用父组件的数据。
父调子相对麻烦一点,不过也并不繁琐:

1.调用方法触发后,调用$emit方法,其中的参数第一个写入的事自定义的函数,后面的是需要调用的子组件的值;

2.在父组件模板中的子组件标签内直接调用该自定义函数,e-word为自定义方法,getData则是为了接到传递的数据
<template id="t1">
	<h2>
		我是父亲组件,{{attr1}}
		<div>{{attr2}}</div>
		<erzi :attr1="attr1" :attr3="attr3" @e-word="getData"></erzi>
	</h2>
</template>
methods:{
	getData(attr2){
		this.attr2 = attr2
	}
},

至此,父组件已经可以使用子组件内的attr2的数据了
3.非父子组件调用
①需要提前创建一个新的vue对象,
②调用方法开始后执行新的vue对象的方法$emit(),这里类似于父调子时的写法,
③在主动调用的组件内,根据生命周期函数mounted后,执行新的vue对象的.on方法来获取第二步传递的参数
(event是新创建的vue对象,.on为接收数据,e-word是第二步自定义的方法)

event.$on("e-word",attr2=>{
	this.attr2 = attr2
})

至此非父子组件的传值也已完成。
今天暂时码这点,后续再更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue是一款流行的JavaScript框架,它提供了组件化开发的方式,使得我们可以将页面拆分成多个独立的组件,每个组件都有自己的状态和行为。在Vue中,组件指令生命周期是非常重要的概念。 1. 组件 组件Vue中最重要的概念之一,它是一个可以复用的Vue实例,拥有自己的模板、数据、方法和生命周期钩子。通过组件,我们可以将页面拆分成多个独立的模块,每个组件都可以封装自己的逻辑,实现高度复用和可维护的代码。 在Vue中,组件可以通过Vue.component()方法或者单文件组件的方式进行定义。例如: ```javascript // 全局组件 Vue.component('my-component', { template: '<div>{{ message }}</div>', data: function () { return { message: 'Hello, Vue!' } } }) // 局部组件 var ChildComponent = { template: '<div>{{ message }}</div>', data: function () { return { message: 'Hello, Vue!' } } } new Vue({ el: '#app', components: { 'my-component': ChildComponent } }) ``` 2. 指令 指令Vue中另一个重要的概念,它是一种特殊的属性,用于扩展HTML元素的功能。Vue内置了很多指令,例如v-model、v-bind、v-for等,我们也可以自定义指令来实现特定的功能。 指令可以通过v-前缀的方式在HTML中进行使用,例如: ```html <div v-text="message"></div> <input v-model="message"> <ul> <li v-for="item in list">{{ item }}</li> </ul> ``` 3. 生命周期 生命周期Vue中非常重要的概念之一,它描述了Vue实例从创建到销毁的整个过程,包括创建、挂载、更新和销毁等阶段。Vue提供了一系列生命周期钩子函数,可以在这些阶段执行特定的逻辑。 常用的生命周期钩子函数有:created、mounted、updated、destroyed等。例如: ```javascript new Vue({ el: '#app', data: { message: 'Hello, Vue!' }, created: function () { console.log('Vue实例创建完成') }, mounted: function () { console.log('Vue实例挂载完成') }, updated: function () { console.log('Vue实例更新完成') }, destroyed: function () { console.log('Vue实例销毁完成') } }) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱剥核桃不爱吃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值