美文网首页
vue-传值

vue-传值

作者: 走停2015_iOS开发 | 来源:发表于2018-06-20 09:25 被阅读23次
    • 属性传值(父传子)
      传值:string number boolean
      引用:array object 改变一个地方的数据,另一个地 方的数据也会被改变
    <template>
      <div id="app">
         <app-header v-bind:title="title"></app-header>
         <users v-bind:users="users"></users>
         <users v-bind:users="users"></users>
         <app-footer v-bind:title="title"></app-footer>
      </div>
    </template>
    //行为
    <script>
    import Header from './components/Header'
    import Users from './components/Users'
    import Footer from './components/Footer'
    export default {
      name: 'App',
      data()
      {
        return{
               users: [{name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                      {name:"Herry",position:"Emliy",show:false},
                     ], 
    title: "传递的是一个值、包括(number,string,boolean)", 
        }
      },
      components:{
        "users":Users,
        "app-header":Header,
        "app-footer":Footer,
      }
    }
    </script>
    

    1.传引用

    <script>
    export default {
      name:'users',
      props:["users"],
      data() {
      }
    }
    </script>
    

    2.传值

    <script>
    export default {
         name:'app-header',
        props:{
          title:{
           type:String
          }
       },
       data(){
         return{
            title1:"Vue.js Demo",
               }
       }
    }
    </script>
    
    • 事件传值(子传父)
    <template>
      <header @click="changeTitle">
      <h1>{{title1}}   {{title}}</h1>
      </header>
    </template>
    
    <script>
    export default {
         name:'app-header',
        props:{
          title:{
           type:String
          }
       },
       data(){
         return{
            title1:"Vue.js Demo",
         }
       },
      methods:{
      changeTitle:function()
      {
        //注册一个事件
         this.$emit("titleChanged","子向父组件传值");
      }
      }
    }
    </script>
    
    //模板:html
    <template>
      <div id="app">
         <app-header v-on:titleChanged="updataTitle($event)" v-bind:title="title"></app-header>
         <users v-bind:users="users"></users>
         <users v-bind:users="users"></users>
         <app-footer v-bind:title="title"></app-footer>
      </div>
    </template>
    // 获取值
     methods:{
        updataTitle(title)
        {
           this.title = title;
        }
    
    },
    

    相关文章

      网友评论

          本文标题:vue-传值

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