vue 学习记录

监听组件的生命周期

  • 只需要在父组件引用的时候通过 @hook来监听即可,代码如下
//父组件
<Child @hook:mounted="doSomething"/>

属性事件的传递

  • 一次性传递(比如react里面的 {...this.props})答案就是 v-bind和 v-on。

举个例子,假如有一个基础组件 BaseList,只有基础的列表展示功能,现在我们想在这基础上增加排序功能,这个时候我们就可以创建一个高阶组件 SortList。

<!-- SortList-->
<template>
  <BaseList v-bind="$props" v-on="$listeners"> <!-- ... --> </BaseList>
</template>


import BaseList from "./BaseList"; 
// 包含了基础的属性定义
import BaseListMixin from "./BaseListMixin";
// 封装了排序的逻辑 
import sort from "./sort.js";  
export default {
    props: BaseListMixin.props,
    components: { BaseList }
  };

传递属性和事件的方便性,而不用一个个去传递

url变了,但数据没有更新

场景:不同路由复用组件,路由变化,数据并未更新,生命周期钩子并为触发
解决办法:

  • 设置一个unique key
<router-view :key="$route.fullPath">
  • 设置个watch函数
watch: {
    "$route": {
        handler(somevalue) {
            // do stuff
        },
        immediate: true
    }
}
posted @ 2019-08-08 00:44  卑面派对  阅读(134)  评论(0编辑  收藏  举报