• vue2 组件化 component标签和api


    vue组件

    什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可。

    组件化和模块化的不同:

    1. 模块化:是从代码逻辑的角度进行划分的;方便代码分层开发,保证每个功能模块的职能单
    2. 组件化:是从UI界面的角度进行划分的;前端的组件化,方便UI组件的重用

    说明白点,比如我们很多页面都有一个弹框 表格加图表 组成的块,那么我们就可以将这个块,单拿出来形成一个组件,在我们想使用的时候,直接调用这个组件就可以了,不需要在重新写一遍相同的代码。同时我们可以给这个组件定义上 数据和方法 应对我们调用时的不同需求。

    全局组件定义的例子

    这些只是简单的例子,组件没有很大

    1. // 方式一
    2. var p1=Vue.extend({
    3. template:'

      方式一

      '
    4. })
    5. Vue.component('p1',p1)
    6. // 方式二
    7. Vue.component('p2',{template:'

      方式二

      '
      })
    8. // 方式三
    9. // html
    10. // vue
    11. Vue.component('p3',{template:'#p3'})
    12. // 方式四
    13. // html
    14. // vue
    15. Vue.component('p4',{template:'#p4'})
    16. // app中
    17. 'app'>
    18. <p1>p1>
    19. <p2>p2>
    20. <p3>p3>
    21. <p4>p4>
  • // vue实例
  • const vm = new Vue({
  • el: '#app',
  • data: {},
  • methods: {}
  • })
  • 使用components属性定义局部子组件

    父组件

    1. <script>
    2. import home from '@/views/home/index' // 引用组件的路径
    3. export default {
    4. name: 'App',
    5. components: { // 注册
    6. home
    7. }
    8. }
    9. script>

    子组件

    1. <script>
    2. export default {
    3. name: 'Index',
    4. props: {
    5. msg: String
    6. }
    7. }
    8. script>

     使用component标签调用组件

    通过 is 切换当前展示的组件

    1. <script>
    2. import home from '@/views/home/index'
    3. import my from '@/views/my/index'
    4. export default {
    5. name: 'App',
    6. components: { // 引用组件
    7. home, my
    8. },
    9. data() {
    10. return {
    11. flag: true // 定义flag控制组件
    12. }
    13. }
    14. }
    15. script>

    两个子组件相同代码同上一个子组件就是颜色不一样,不展示了直接看效果

     

     

  • 相关阅读:
    【ML】关于什么是概率图模型?
    【SQL 初级语法 5】集合运算
    【Python】基本使用
    【C++】多态
    Java日志系列——logback,log4j2使用
    (附源码)springboot物流配货管理系统 毕业设计 250858
    两分钟搞懂什么是反向代理与正向代理
    Java-枚举类型
    SpringBoot--启动时的事件机制
    Spring——三级缓存解决循环依赖详解
  • 原文地址:https://blog.csdn.net/paidaboluo/article/details/126200926