没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
20页
1.watch和computed的区别 2. Vue 的生命周期 3.Vue 的父组件和子组件生命周期钩子执行顺序是什么 4.Vue 中父组件如何监听子组件的生命周期? 5.为什么Vue实例对象中的data直接是个对象,而组件内的data是个 函数,且返回一个对象? 5.组件间如何通讯? 7.this.$emit 的返回值是什么?如果需要返回值该怎么办? 8.filter中的this是什么? 9. v-if 和 v-show 的区别 10.在列表组件中添加 key 属性的作用? 11.为什么不建议用 index 作为 key 呢? 12.数据响应式(双向绑定)怎么做到的? 13.Vue 的响应式原理中 Object.defineProperty 有什么缺陷?为什么 在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty? 14.Vue模板渲染的原理是什么? 15.Vuex 16.使用 Vuex 管理数据,与直接在全局window下定义变量相比,有什 么区别或者说优势? 17.Vuex 是通过什么方式提供响应式数据的? 18.Vuex 原理 等等
资源推荐
资源详情
资源评论
watch 和 computed 区别
watch 是监听动作,computed 是计算属性
watch 没缓存,只要数据变化就执行。computed 有缓存,只在属性变化的时候才去计算。
watch 可以执行异步操作,而 computed 不能
watch 常用于一个数据影响多个数据,computed 则常用于多个数据影响一个数据
讲一下 Vue 的生命周期?
创建期间的生命周期函数:
beforeCreate:实例刚在内存中被创建出来,此时,还没有初始化好 data 和 methods 属性
created:实例已经在内存中创建OK,此时 data 和 methods 已经创建OK,此时还没有开始 编译
模板
beforeMount:此时已经完成了模板的编译,但是还没有挂载到页面中。
换句话说,此时页面中的类似 {{msg}} 这样的语法还没有被替换成真正的数据。
mounted:此时,已经将编译好的模板,挂载到了页面指定的容器中显示【可以获取 DOM 节点 |
发起异步请求】
用户已经可以看到渲染好的页面了
运行期间的生命周期函数:
beforeUpdate:状态更新之前执行此函数, 此时 data 中的状态值是最新的,但是界面上显示的
数据还是旧的,因为此时还没有开始重新渲染DOM节点
updated:实例更新完毕之后调用此函数,此时 data 中的状态值 和 界面上显示的数据,都已经完
成了更新,界面已经被重新渲染好了!
销毁期间的生命周期函数:
beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
destroyed:Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监
听器会被移除,所有的子实例也会被销毁。
Vue 的父组件和子组件生命周期钩子执行顺序是什么
1. 加载渲染过程
父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->
子mounted->父mounted
2. 子组件更新过程
父beforeUpdate->子beforeUpdate->子updated->父updated
3. 父组件更新过程
父beforeUpdate->父updated
4. 销毁过程
父beforeDestroy->子beforeDestroy->子destroyed->父destroyed
总结:从外到内,再从内到外
Vue 中父组件如何监听子组件的生命周期?
v-on / $emit
在子组件中的 mounted 钩子函数中调用 this.$emit("child-event"); 向父组件发送 child-event
消息。 父组件 @child-event="handleChildEvent" 监听了此消息。
@hook
假如我们这里的子组件是外部的,是不可更改的。那我们父组件监听这个外部子组件中的生命周期钩子
函数怎么办呢?
<child-comp @child-event="handleChildEvent"></child-comp></div>
Vue.component('child-comp', {
template: '<div></div>',
data: function () {
return {
childMsg: 'Hello, I am Child'
};
},
methods: {},
mounted() {
this.$emit('child-event');
}
});
const app = new Vue({
el: '#app',
data: function () {
return {
parentData: 'parent Message'
};
},
beforeCreate: function () {
console.log('before created');
},
methods: {
handleChildEvent() {
console.log('child mounted');
}
}
});
<div id="app">
<child-comp @hook:mounted="handleChildEvent"></child-comp>
</div>
Vue.component('child-comp', {
template: '<div></div>',
data: function () {
return {
childMsg: 'Hello, I am Child'
};
},
methods: {},
把子组件中的 mounted 钩子函数中的 $emit 方法去掉, 在父组件中使用 @hook:mounted
更多阅读
包你理解---vue 的生命周期
组件
现在有个父子组件,我希望在父级中给子组件绑定一个原生click事
件,这个事件会被触发吗?
答:不能,绑定的该click事件会被当做组件上的一个普通属性看待,如果想要使click事件生效,可以使
用 @click.native='change' 的方式来实现。
mounted() {
//this.$emit("child-event");
}
});
const app = new Vue({
el: '#app',
data: function () {
return {
parentData: 'parent Message'
};
},
beforeCreate: function () {
console.log('before created');
},
methods: {
handleChildEvent() {
console.log('child mounted');
}
}
});
<div id='app'>
<my-button @click='change'></my-button>
</div>
<script>
export default {
methods: {
change() {
alert(1)
}
}
}
</script>
为什么Vue实例对象中的data直接是个对象,而组件内的data是个
函数,且返回一个对象?
因为组件中是 data:{} 的话,这个 {} 是个对象,引用类型。如果多处地方引用同一个组件的话,则
共享同一个data对象,这是不合理的。所以需要每次使用组件时,return一个新的对象,这样就不会共
享了。
组件间如何通讯?
props/$emit+v-on : 通过props将数据自上而下传递,而通过$emit和v-on来向上传递信息。
EventBus: 通过EventBus进行信息的发布与订阅
vuex: 是全局数据管理库,可以通过vuex管理全局的数据流
$attrs/$listeners : Vue2.4中加入的 $attrs/$listeners 可以进行跨级的组件通信
provide/inject:以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并
在起上下游关系成立的时间里始终生效,这成为了跨组件通信的基础
Vue 组件间通信六种方式
this.$emit 的返回值是什么?如果需要返回值该怎么办?
this.$emit 的返回值就是 this ,即当前子组件 VueComponent 。
如果想要有返回值可以如下操作:
子组件
父组件
<template>
<input :value="name" @change="handleChange" />
</template>
<script>
export default {
props: ['name'],
methods: {
handleChange(e) {
const res = this.$emit("Echange", e.target.value, val => {
console.log(val);
});
console.log(res, res === this);
},
}
}
</script>
<template>
<Child :name='name' @Echange="handleEventChange" />
</template>
<script>
export default {
data() {
return {
name: '',
}
}
methods: {
剩余19页未读,继续阅读
资源评论
追涨杀跌的小韭菜
- 粉丝: 1262
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功