zoukankan      html  css  js  c++  java
  • 520 vue父组件向子组件传递:props基本用法,props数据验证,props中的驼峰标识

    props基本用法


    props数据验证

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    
    <body>
    
      <div id="app">
        <!--<cpn v-bind:cmovies="movies"></cpn>-->
        <!--<cpn cmovies="movies" cmessage="message"></cpn>-->
        <!-- 通过自定义属性,父组件将要传递的数据,传递给子组件 -->
        <cpn :cmessage="message" :cmovies="movies"></cpn>
      </div>
    
      <template id="cpn">
        <div>
          <ul>
            <li v-for="item in cmovies">{{item}}</li>
          </ul>
          <h2>{{cmessage}}</h2>
        </div>
      </template>
    
      <script src="../js/vue.js"></script>
      <script>
        // 父传子: props
        const cpn = {
          template: '#cpn',
          // 子组件通过 props 配置项,来指定要接收的数据
          // props: ['cmovies', 'cmessage'],
          props: {
            // 1.类型限制
            // cmovies: Array,
            // cmessage: String,
    
            // 2.提供一些默认值, 以及必传值
            cmessage: {
              // 类型要和父组件传递的数据类型一致,否则报错
              type: String,
              default: 'aaaaaaaa',
              required: true
            },
            // 类型是对象或者数组时, 默认值必须是一个函数
            cmovies: {
              type: Array,
              default() {
                return []
              }
            }
          },
        }
    
        const app = new Vue({
          el: '#app',
          data: {
            message: '你好啊',
            movies: ['海王', '海贼王', '海尔兄弟']
          },
          components: {
            cpn
          }
        })
      </script>
    
    </body>
    
    </html>
    

    组件通信-父传子(props中的驼峰标识)

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    
    <body>
    
      <div id="app">
        <!-- 要用段横杆,不能写成cInfo,浏览器会把所有的标签名、标签属性名识别为小写 -->
        <cpn :c-info="info" :child-my-message="message" v-bind:class></cpn>
      </div>
    
      <template id="cpn">
        <div>
          <h2>{{cInfo}}</h2>
          <h2>{{childMyMessage}}</h2>
        </div>
      </template>
    
      <script src="../js/vue.js"></script>
      <script>
        const cpn = {
          template: '#cpn',
          // props中的属性可以用驼峰
          props: {
            cInfo: {
              type: Object,
              default() {
                return {}
              }
            },
            childMyMessage: {
              type: String,
              default: ''
            }
          }
        }
    
        const app = new Vue({
          el: '#app',
          data: {
            info: {
              name: 'why',
              age: 18,
              height: 1.88
            },
            message: 'aaaaaa'
          },
          components: {
            cpn
          }
        })
      </script>
    
    </body>
    
    </html>
    
  • 相关阅读:
    东北师范大学信息化建设-北大公益论坛演讲稿
    HTML5定稿一周年,你必须要重新认识HTML5了
    从Java的角度理解前端框架,nodejs,reactjs,angularjs,requirejs,seajs
    mui开发webapp(2)
    mui开发webapp(1)
    html5+ plus和phoneGap、cordova的比较
    mui开发
    Web前端技能
    javascript权威指南第六版学习
    鼠标移入的box-shadow参考
  • 原文地址:https://www.cnblogs.com/jianjie/p/13535851.html
Copyright © 2011-2022 走看看