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

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    </head>
    <body>
      <div id="app">
        <!-- 组件注册成功后,可以直接使用组件名作为标签 -->
        <com></com>
    
      </div>
      <script>
        // 组件配置对象
        const com = {
          template: `
    
          `
        }
        
        // 1 全局注册
        // Vue.component('自定义组件名', com)
    
        // 2 局部注册(局部注册需要在对应的组件中进行注册)
        const app = new Vue({
          el: '#app',
          components: {
            // 自定义组件名: 组件配置对象
            // com: com
            com
          }
        })
    
      </script>
    </body>
    </html>
    组件之间的通信
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    </head>
    <body>
      <div id="app">
        <!-- <child :a="2"></child> -->
        <!-- <child a="2" b="3" c="数据"></child> -->
        <child :msg="msg" @update:msg="getMsg"></child> 
        <child @click="函数"></child>
        <!-- <p a="1"></p> -->
      </div>
      <script src="./vue.js"></script>
      <script>
        /* 
          Vue中组件关系分为以下两种
            父子
            非父子
          
          由此得到三种通信方式
            父 -> 子
              只要子组件标签上有属性,那么在子组件中就一定能接收
    
              数据是由父组件传向子组件的
              父组件 传数据
                找到父组件模板中的子组件标签
                在子组件标签上添加属性=属性值
                  prop名字="值"
                  <子标签 a="1"></子标签>
              
              子组件 接收数据
                找到子组件的组件配置对象,
                添加props属性
                  props: ['prop名字1', 'prop名字2']
                  props: {
                    prop名字1: 类型
                  }
                prop当作data使用即可
    
            子 -> 父
              只要组件标签上绑定了事件,那么这个事件一定是自定义事件(想要让自定义事件触发,就必须在子组件的相关操作中触发这个事件)。如果我们想要在组件上绑定原生事件
                  @click.native="函数"
    
              子组件触发
                需要在子组件中的对应元素上绑定原生事件
                在组件中的methods里添加对应的事件函数
                在对应事件函数中触发自定义事件
              父组件接收
                找到父组件模板中的子组件标签
                在子组件标签上绑定自定义事件
                  <子组件标签 @自定义事件="父methods中函数"></子组件标签>
                在父组件methods中添加函数
                  methods: {
                    函数 (data) {
                      data就是子组件中传递过来的数据
                    }
                  }
                
            非父子通信
              需要一个公共的实例对象
              const bus = new Vue()
    
              需要传值的组件中
                  bus.$emit('自定义事件', 数据)
    
              需要接受值的组件中
                  bus.$on('自定义事件', data => {
                    data就是上面的数据
                  })
    
    
        */  
        
        const child = {
          template: `
            <div>
              子组件
              <button @click="changeMsg">按钮</button>
              {{typeof a}}
              {{b}}
              {{msg}}
            </div>
          `,
          props: ['a', 'b', "msg"],
          methods: {
            changeMsg () {
              // this.$emit('自定义事件名', '要传递的数据')
              this.$emit('update:msg', '子组件中传递过去的数据')
            }
          }
        }
        Vue.component('child', child)
    
        const app = new Vue({
          el: '#app',
          data: {
            msg: "父组件中的数据"
          },
          methods: {
            getMsg (data) {
              console.log(data)
              this.msg = data
            }
          }
        })
      </script>
    </body>
    </html>
  • 相关阅读:
    批量清理java源码的target目录
    前端移动node_modules到其他位置
    oracle物化视图和视图的数据不一致
    百词斩英语单词素材提取、听力练习
    2048自动游戏AI, 最高可以玩出一二十个2048
    switcheroo: Alt+Tab的替代工具、窗口搜索
    为知笔记wiz.editor.md增强
    腾讯北极星 Polaris 试用
    [分布式] 分布式事务、seata
    Mysql查询所有的表名和查询表中所有的字段名
  • 原文地址:https://www.cnblogs.com/bao2333/p/10151788.html
Copyright © 2011-2022 走看看