美文网首页
Vue组件通信方式1-props

Vue组件通信方式1-props

作者: 理子 | 来源:发表于2020-06-03 05:05 被阅读0次
    显示父组件传来的值 弹窗,显示子组件的值

    父组件 App.vue

    <template>
      <div id="app">
        <!-- 父组件给子组件props传值 -->
        <!-- props组件传值除了字符串 其他的必须动态绑定 -->
        <Props name="a" :age="18" :person="p" :alertInfo="sayHello"/>
      </div>
    </template>
    
    <script>
    import Props from './components/Props.vue';
    
    export default {
      name: 'App',
      components: {
        Props,
      },
      data(){
        return{
          p:{
            name:'yaya',
            age:100
          }
        }
      },
      methods:{
        // 子组件有形参 显示子组件里的值(模型)
        sayHello(name, age){
          alert(`${age}的${name}say hello!`);
        },
    
        // 子组件没有形参
        // sayHello(){
        //   alert('Say Hello');
        // },
    
      }
    }
    </script>
    
    <style>
    #app {
      font-family: Avenir, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    </style>
    
    

    子组件 components/Props.vue

    <template>
      <div class="hello">
        <p>name: {{name}} </p>
        <p>age: {{age}}</p>
        <p>{{person}}</p>
        <button @click="alertInfo('理子',18)">点我hello</button>
      </div>
    </template>
    
    <script>
    export default {
      name: 'Props',
      //简单的接收方式
      // props: ['name', 'age']
      /*
      props: {
        name: String,
        age: Number,
        person: Object,
        logPerson: Function
      }
      */
    
      //带校验&默认值的接收方式
      props: {
        name: {type: String, required: true, default: '撩课'},
        age:  {type: Number, required: false, default: 20},
        person: Object,
        alertInfo: Function
      },
      
    }
    </script>
    
    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style scoped>
    h3 {
      margin: 40px 0 0;
    }
    ul {
      list-style-type: none;
      padding: 0;
    }
    li {
      display: inline-block;
      margin: 0 10px;
    }
    a {
      color: #42b983;
    }
    </style>
    

    相关文章

      网友评论

          本文标题:Vue组件通信方式1-props

          本文链接:https://www.haomeiwen.com/subject/uecxzhtx.html