zoukankan      html  css  js  c++  java
  • vue 组件学习

    感谢作者:https://cn.vuejs.org/v2/guide/forms.html

    全局组件

    Vue.component('component-a', { /* ... */ })
    Vue.component('component-b', { /* ... */ })
    Vue.component('component-c', { /* ... */ })
    
    new Vue({ el: '#app' })
    <div id="app">
      <component-a></component-a>
      <component-b></component-b>
      <component-c></component-c>
    </div>

    局部组件

    var ComponentA = { /* ... */ }
    var ComponentB = { /* ... */ }
    var ComponentC = { /* ... */ }
    new Vue({ el: '#app', components: { 'component-a': ComponentA, 'component-b': ComponentB } })

    局部组件2

    var ComponentA = { /* ... */ }
    
    var ComponentB = {
      components: {
        'component-a': ComponentA
      },
      // ...
    }
    import ComponentA from './ComponentA.vue'
    
    export default {
      components: {
        ComponentA
      },
      // ...
    }

    基础组件的自动化全局注册

    import BaseButton from './BaseButton.vue'
    import BaseIcon from './BaseIcon.vue'
    import BaseInput from './BaseInput.vue'
    
    export default {
      components: {
        BaseButton,
        BaseIcon,
        BaseInput
      }
    }
    <BaseInput
    v-model="searchText"
    @keydown.enter="search"
    />

    <BaseButton @click="search">
    <BaseIcon name="search"/>
    </BaseButton>


    基础组件的自动化的全局注册。

    如果你恰好使用了 webpack (或在内部使用了 webpack 的 Vue CLI 3+),那么就可以使用 require.context 只全局注册这些非常通用的基础组件。这里有一份可以让你在应用入口文件 (比如 src/main.js) 中全局导入基础组件的示例代码:

    import Vue from 'vue'
    import upperFirst from 'lodash/upperFirst'
    import camelCase from 'lodash/camelCase'
    
    const requireComponent = require.context(
      // 其组件目录的相对路径
      './components',
      // 是否查询其子目录
      false,
      // 匹配基础组件文件名的正则表达式
      /Base[A-Z]w+.(vue|js)$/
    )
    
    requireComponent.keys().forEach(fileName => {
      // 获取组件配置
      const componentConfig = requireComponent(fileName)
    
      // 获取组件的 PascalCase 命名
      const componentName = upperFirst(
        camelCase(
          // 获取和目录深度无关的文件名
          fileName
            .split('/')
            .pop()
            .replace(/.w+$/, '')
        )
      )
    
      // 全局注册组件
      Vue.component(
        componentName,
        // 如果这个组件选项是通过 `export default` 导出的,
        // 那么就会优先使用 `.default`,
        // 否则回退到使用模块的根。
        componentConfig.default || componentConfig
      )
    })

    获取全局组件的方法。

  • 相关阅读:
    《java程序设计》201671010143 周结(11)
    《java程序设计》周结(10)
    《java程序设计》(9)
    201671010142 <<面向对象程序设计(Java) 实验十五 线程 感悟和总结>>
    201671010142 2017-2 《java第十二十三章学习感悟》
    201671010142 2017-2 《java第十二章学习感悟》
    201671010142 2017-2 《java第十一章学习感悟》
    201671010142 2017-2 《java第十章学习感悟》
    201671010142 2017-2 《java第九章学习感悟》
    201671010142 2017-2 《java第八章学习感悟》
  • 原文地址:https://www.cnblogs.com/dousil/p/14522991.html
Copyright © 2011-2022 走看看