1. 程式人生 > >vue中props傳值

vue中props傳值

props是實現父元件傳遞訊息給子元件的,子元件不能通過這個傳值給父元件

用法如下:

parent.vue(這是父元件檔案)

<template>
  <div class="container">
    <div>
        <child :msgtochild="message"></child>
    </div>
  </div>
</template>
<script>
import child from './components/child.vue'
export default {
  name: 'app',
  data () {
    return {
       msg: '書屋',
      search:false,
      message:'這是傳送給子元件的訊息'
    }
  },
  components: {
       child
  },
  directives: {
    focus: {
        inserted: function (el, {value}) {
            if (value) {
                el.focus();
            }
        } 
    }
  },
  methods:{
        changeStatus:function(el){
            this.search=!this.search;
        }
  },
  mounted:function(){
      layui.use(['layer', 'form'], function(){
          var layer = layui.layer
          ,form = layui.form;
      });
  }
}
</script>
<style scoped>
#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;
}
.bounce-enter-active {  animation: bounceInRight .5s;} /* 剛載入時的動畫 */
/*.bounce-leave-active {  animation: bounce-out .5s;}*/
@keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
  }


  from {
    opacity: 0;
    transform: translate3d(3000px, 0, 0);
  }


  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }


  75% {
    transform: translate3d(10px, 0, 0);
  }


  90% {
    transform: translate3d(-5px, 0, 0);
  }


  to {
    transform: none;
  }
}
@keyframes bounce-out {  0% {    transform: scale(1);  }  50% {    transform: scale(1.5);  }  100% {    transform: scale(0);  }}




h1, h2 {
  font-weight: normal;
}


ul {
  list-style-type: none;
  padding: 0;
}


li {
  display: inline-block;
  margin: 0 10px;
}


a {
  color: #42b983;
}
</style>

子元件要想拿到父元件傳過來的值就得用props這個屬性,而不能放在data裡邊

child.vue(這是子元件檔案)

<template>
    <div class="layui-container">
        <a href="">{{msgtochild}}</a>
    </div>
</template>
<script>
import '../assets/style.less'
export default {
  name: 'app',
  props:{
    'msgtochild':String //這個的String是用來宣告這個子元件想要父元件傳過來值的型別,一般為String,Object
  },
  data () {
    return {
      msg: '書屋',
      search:false,
      bookList:[
        {'bookimgsrc':'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3965705221,2010595691&fm=27&gp=0.jpg','bookname':'標題','dongtai':'更新動態'},
        {'bookimgsrc':'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3965705221,2010595691&fm=27&gp=0.jpg','bookname':'標題','dongtai':'更新動態'},
        {'bookimgsrc':'https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3965705221,2010595691&fm=27&gp=0.jpg','bookname':'標題','dongtai':'更新動態'}
      ],
      somedata:[]
    }
  },
  methods:{
        changeStatus:function(el){
            this.search=!this.search;
        }
  },
  mounted:function(){
      layui.use(['layer', 'form'], function(){
          var layer = layui.layer
          ,form = layui.form;
      });

      this.$emit('childMethod');
  },
  created(){
    console.log(this.$route.params.id);
    this.$http.jsonp('https://suggest.taobao.com/sug?code=utf-8&q=數碼').then(function(res){
      this.somedata=res.body.result;
    }, function(res){
          // console.log(res)
    });
  }
}
</script>

<style scoped>
.list{
  padding: 5px 0;
  border-bottom: 1px solid #DDD;
}
.list img{
  width: 100%
}
.title a{
  font-size: 18px
}
</style>

這樣一來父元件裡邊的message發生變化,子元件裡邊的對應的msgfromparent就會相應的改變

相關推薦

vueprops

props是實現父元件傳遞訊息給子元件的,子元件不能通過這個傳值給父元件 用法如下: parent.vue(這是父元件檔案) <template>   <div class="container">     <div>        

vue使用props

1.靜態傳值(在父元件中賦值好props中屬性的值傳遞給子元件)父元件<template> <div> <input v-model="message"> <child message="hello"><

vueprops父元件給子元件以及父子元件主動獲

父元件給子元件傳值:      1.父元件呼叫子元件的時候  在父元件中繫結動態屬性        <v-header :title='title'  :homemsg='msg'  :run='run'  :home='this'></v-header

Vue子、子父元件之間

在Vue的框架開發的專案過程中,經常會用到元件來管理不同的功能,有一些公共的元件會被提取出來。這時必然會產生一些疑問和需求?比如一個元件呼叫另一個元件作為自己的子元件,那麼我們如何進行給子元件進行傳值呢。常見的就是父子元件,子父元件之間的傳值。父子元件的關係可以總結為 pro

vue子(props)的用法

方式一:靜態 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

vue props失敗 輸出undefined的問題

如果在prop中傳的值為一個沒有使用特殊命名規則的變數如:(type),可以順利傳值:<div id="app"> <test :type="type"></test> </div> Vue.component("test",

vue父子元件props,如何在子元件method裡拿到父元件資料

子元件掛載的時候,props傳值,資料掛載命名:用駝峰命名法命名,在子元件在methods裡才可以通過this.xx獲取。注意命名要規範。父元件通過props傳值給子元件,子元件在methods裡要拿到父元件傳遞過來的資料有2種情況:第一種:父元件傳遞的引數是固定的,data

C語言調用

comment main 獲取 return line split -c data add   在c語言中每個變量都有兩個屬性一個是值,一個是址。比方: int a = 2;    變量a的值是2,變量a的地址,能夠用&取地址操作符獲取,

關於Vue組件(父子組件)

es2017 console script ons rom ber imp 文件 gnu 1 父組件給子組件傳值     1)子組件部分     2)父組件部分     2子組件給父組件傳值   1)子組件部分       2)父組件部分        

vue-router頁面及接收

rip () 是否 component baidu java abc nbsp data 主頁 “去第二個頁面”方法傳值1 <template> <div id="app"> <div>&l

ASP.Net頁面的幾種方式

webconfig local 區別 重啟 Nid 傳遞對象 app too BE 大致概括一下,ASP.NET 頁面之間傳遞值得方式大致可以分為如下幾種:Request.QueryString["name"],Request.Form("name"),Session,Co

深入理解vueProps屬性

mss command mman 理解 多個 prop 重復 item cin 使用 Props 傳遞數據 組件實例的作用域是孤立的。這意味著不能並且不應該在子組件的模板內直接引用父組件的數據。可以使用 props 把數據傳給子組件。 “prop” 是組件數據的一個字段,期

Vue通訊、的多種方式

一、通過路由帶引數進行傳值 ①兩個元件 A和B,A元件通過query把orderId傳遞給B元件(觸發事件可以是點選事件、鉤子函式等) this.$router.push({ path: '/conponentsB', query: { orderId: 123 } }) // 跳轉到B

AndroidIntent的幾種方法

1.使用putextra    Intent intent = new Intent(); intent.putExtra("test","asdf"); intent.se

Vue的插閃爍問題

     使用{{}}方式在網速較慢時會出現問題。在資料未載入完成時,頁面會顯示出原始的{{}},載入完畢後才顯示正確資料,我們稱為插值閃爍。 尤其在網速比較慢的時候比較明顯。 【解決方案】使用v-text和v-html指令來替代{{}} 。

vue之元件

vue元件間的資料傳遞分為兩種:傳值和傳引用 1.傳引用 將User中的資料拿到app中作為共用資料 使用<user v-bind:users="users"></user>方法向子元件傳值,子元件通過 props:{users:{type:Array,

vue對陣列變化的監聽與重新響應渲染的方法

在我們專案開發過程中,例項中的資料型別可以是物件、陣列等。在物件中,某個屬性值發生更改時,我們可以通過物件的深度監聽,以達到重新渲染頁面的需求。或者查閱博主的文章 https://blog.csdn.net/weixin_37861326/article/details/81034231;

vue路由

路由: vue路由傳參方式有: query、params+動態路由傳參 1. query通過path切換路由, params通過name切換路由 // query通過path切換路由 <router-link :to="{path: 'Detail', query: { id: 1 }}"&g

vue頁面params的坑

a.vue向b.vue傳值 a.vue this.$router.push({ path: '/payType', query: { putUpList: this.putUpList, name:'111' }, pa

VUE父子元件問題

首先說頁面需要呼叫子元件的位置 這段程式碼的解釋:         如果showReport的值是true 那麼顯示子元件 向子元件傳引數 nameList(自定義的引數,可以自己任意取名) 而nameList對應的值是V