vue组件

  1. 创建组件
  2. 注册组件
  3. 使用组件  把组件名称当成标签名使用

  *全局组件

    通过Vue.component 进行注册

    所有的实例都可以使用

  *局部组件

    将组件注册到配置项里的components里面

    只有注册实例才能用

  #组件的嵌套

    全局组件嵌套  组件本身没有嵌套的关系,开发者根据使用赋予嵌套关系

    局部组件嵌套 局部组件在注册之前已经形成嵌套关系,只能按照该嵌套关系使用

  #组件通信

  *父子组件通信  props

  props 指定一个自定义属性用来传递数据

  将父组件的数据通过props传递给子组件

  父组件数据改变,子组件也会自动跟着改变

   #自定义属性

  • 父子组件通信 props props 指定一个自定义属性来传递数据 将父组件的数据通过props 传递给子组件 父组件数据改变子组件也会自动跟着变

  • 子父组件通信 props 传递的是方法 自定义事件

  • 实例 组件对象下 有一个$emit 可以触发绑定在该组件上的自定义方法 兄弟通信(亲兄弟):父子+子父结合 兄弟通信(远方亲戚):父子+子父结合可以做 异常麻烦 需要有一个公有的父实例 或者组件 事件总线 eventbus 事件注册监听机制 创建一个空实例 在实例注册一个事件 注册之后只要能获得实例就能触发

 

    1.不管嵌套的多少 创建一个空实例组件都能访问到

 

 

    2.通过$on('name',fun) 注册方法事件

 

 

    3.通过$emit('name') 触发事件 vuex 全局状态管理

 

 

生命周期钩子函数:例如:created   mounted  updated   destroyed

:不要在选项属性或回调上使用箭头函数,比如 created: () => console.log(this.a) 或 vm.$watch('a', newValue => this.myMethod())。因为箭头函数并没有 thisthis会作为变量一直向上级词法作用域查找,直至找到为止,经常导致 Uncaught TypeError: Cannot read property of undefined 或 Uncaught TypeError: this.myMethod is not a function 之类的错误。(官方文档copy的)

 

 生命周期八个中重要的:

1.create 2. mounted  3.updated   4.destroyed(都很重要)

PS:

template作为标签使用时只允许有一个根元素

组件中的东西只能在组件中使用;实例中的东西只能在实例里面使用

 

posted @ 2019-06-16 16:42  Jonathan-Grace  阅读(83)  评论(0)    收藏  举报