Xin's blog Xin's blog
首页
  • 前端文章

    • HTML
    • CSS
    • JavaScript
    • Vue
    • 组件与插件
    • CSS扩展语言
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架面试题汇总
  • 基本面试题
  • 进阶面试题
  • 其它
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 前后端联调
  • mock.js
  • 奇技淫巧
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

Xin

英雄可不能临阵脱逃啊~
首页
  • 前端文章

    • HTML
    • CSS
    • JavaScript
    • Vue
    • 组件与插件
    • CSS扩展语言
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架面试题汇总
  • 基本面试题
  • 进阶面试题
  • 其它
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 前后端联调
  • mock.js
  • 奇技淫巧
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • HTML

  • CSS

  • JavaScript

  • Vue

    • 知识点

    • 方法

    • vue API

      • 全局api
      • 数据
      • 生命周期
      • 组合
        • 实例property
        • 实例方法 数据
        • 实例方法 事件
        • 指令
    • 组件与插件

    • css扩展语言

    • 学习笔记

    • 前端
    • Vue
    • vue API
    ctrlwin
    2021-07-09

    组合

    # 组合

    # parent

    • 类型:Vue instance

    • 详细:

      指定已创建的实例之父实例,在两者之间建立父子关系。子实例可以用 this.$parent 访问父实例,子实例被推入父实例的 $children 数组中。

    • 参考:我的另一篇组件通信之 $parent 和 $children (opens new window)

    注意

    节制地使用 $parent 和 $children - 它们的主要目的是作为访问组件的应急方法。更推荐用 props 和 events 实现父子组件通信

    # mixins

    • 类型:Array<Object>

    • 详细:

      mixins 选项接收一个混入对象的数组。这些混入对象可以像正常的实例对象一样包含实例选项,这些选项将会被合并到最终的选项中,使用的是和 Vue.extend() 一样的选项合并逻辑。也就是说,如果你的混入包含一个 created 钩子,而创建组件本身也有一个,那么两个函数都会被调用。

      Mixin 钩子按照传入顺序依次调用,并在调用组件自身的钩子之前被调用。

    • 示例

      var mixin = {
        created: function () { console.log(1) }
      }
      
      var vm = new Vue({
        created: function () { console.log(2) },
        mixins: [mixin]  // 通过将混入对象放入mixins数组中,使其在组件中可以被使用
      })
      // => 1
      // => 2
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

    # extends

    • 类型:Object | Function

    • 详细:

      允许声明扩展另一个组件 (可以是一个简单的选项对象或构造函数),而无需使用 Vue.extend。这主要是为了便于扩展单文件组件。

      这和 mixins 类似。

      var CompA = { ... }
      
      // 在没有调用 `Vue.extend` 时候继承 CompA
      var CompB = {
        extends: CompA,
        ...
      }
      
      1
      2
      3
      4
      5
      6
      7

    # provide / inject

    • 类型:

      • provide:Object | () => Object
      • inject:Array<string> | { [key: string]: string | Symbol | Object }
    • 详细:

      这对选项需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在其上下游关系成立的时间里始终生效。如果你熟悉 React,这与 React 的上下文特性很相似。

      provide 选项应该是一个对象或返回一个对象的函数。该对象包含可注入其子孙的 property。在该对象中你可以使用 ES2015 Symbols 作为 key,但是只在原生支持 Symbol 和 Reflect.ownKeys 的环境下可工作。

      inject 选项应该是:

      • 一个字符串数组,或
      • 一个对象,对象的 key 是本地的绑定名,value 是:
        • 在可用的注入内容中搜索用的 key (字符串或 Symbol),或
        • 一个对象,该对象的:
          • from property 是在可用的注入内容中搜索用的 key (字符串或 Symbol)
          • default property 是降级情况下使用的 value

      提示:provide 和 inject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的 property 还是可响应的。

    • 参考:我的另一篇组件通信之 provide / inject (opens new window)
    在GitHub上编辑 (opens new window)
    #vue
    上次更新: 2/23/2022, 5:36:03 PM

    ← 生命周期 实例property→

    最近更新
    01
    createElement函数创建虚拟DOM
    05-26
    02
    clipboard 剪切板属性
    05-26
    03
    vue的权限管理
    05-16
    更多文章>
    Theme by Vdoing | Copyright © 2021-2022 Xin | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×