官术网_书友最值得收藏!

Parent-to-child communication with Props

As we saw in the The almighty components section, our component-based app will have a tree of components, and we need them to communicate with each other. For now, we will only focus on descending, parent-to-child communication. This is accomplished with "props".

Our top-bar component needs to know who the players are, which one is currently playing, and what the current turn number is. So, we will need three props--players, currentPlayerIndex, and turn.

To add props to a component definition, use the props option. For now, we will simply list the names of our props. However, you should know that there is a more detailed notation with an object instead, which we will cover in the next chapters.

  1. Let's add the props to our component:
      Vue.component('top-bar', {
// ...
props: ['players', 'currentPlayerIndex', 'turn'],
})

In the parent component, which is the root application, we can set the props value the exact same way we would for HTML attributes.

  1. Go ahead and use the v-bind shorthand to wire the props value with the app data in the main template:
      <top-bar :turn="turn" :current-player-index="currentPlayerIndex"         
:players="players" />

Note that since HTML is case-insensitive and by convention, it is recommended to use the kebab-case (with dashes) names of our props, and the camel-case names in the JavaScript code.

Now, we can use the props in our top-bar component just like data properties. For example, you could write something like this:

Vue.component('top-bar', {
// ...
created () {
console.log(this.players)
},
})

This would print the players array sent by the parent component (our app) in the browser console.

主站蜘蛛池模板: 无为县| 江口县| 巴彦县| 浪卡子县| 双柏县| 项城市| 阜城县| 彝良县| 连城县| 苏尼特左旗| 罗城| 兴义市| 金寨县| 云霄县| 夹江县| 榆社县| 潮州市| 白朗县| 鄱阳县| 洪湖市| 林周县| 读书| 河津市| 绥中县| 陈巴尔虎旗| 丰顺县| 哈巴河县| 克拉玛依市| 德江县| 甘孜县| 石泉县| 富平县| 临泽县| 微博| 邢台市| 柏乡县| 金塔县| 潼南县| 噶尔县| 公安县| 门头沟区|