- Vue.js 2 Web Development Projects
- Guillaume Chau
- 246字
- 2021-07-02 22:34:34
Playing a card
Now, we need to handle the 'play' event in the hand component we emit in the cards when the user clicks on them, and emit a new 'card-play' event to the main component with an additional argument--the played card in question.
- First, create a new method called handlePlay. It takes a card argument and emits the new event to the parent component:
methods: {
handlePlay (card) {
this.$emit('card-play', card)
},
},
- Then, add a listener to our cards for the 'play' event:
<card v-for="card of cards" :def="card.def"
@play="handlePlay(card) />
As you can see here, we directly use the iterator variable card of the v-for loop. That way, we don't need the card component to emit its card item since we already know what it is.
To test the card play, we will only remove it from the hand for now.
- Create a new temporary method called testPlayCard in the main component in the main.js file:
methods: {
// ...
testPlayCard (card) {
// Remove the card from player hand
const index = this.testHand.indexOf(card)
this.testHand.splice(index, 1)
}
},
- Add the event listener for the 'card-play' event on the hand component in the main template:
<hand v-if="!activeOverlay" :cards="testHand" @card-play="testPlayCard" />
If you click on a card, it should now emit a 'play' event to the hand component, which will then emit a 'card-play' event to the main component. It will, in turn, remove the card from the hand, making it disappear. To help you debug this sort of use case, the devtools have an Events tab:

- 自然語言處理實戰:預訓練模型應用及其產品化
- 跟老齊學Python:輕松入門
- Learning Bayesian Models with R
- BeagleBone Media Center
- PyTorch自然語言處理入門與實戰
- Java程序員面試算法寶典
- Banana Pi Cookbook
- Microsoft System Center Orchestrator 2012 R2 Essentials
- 基于Swift語言的iOS App 商業實戰教程
- SharePoint Development with the SharePoint Framework
- Python算法指南:程序員經典算法分析與實現
- PrimeFaces Blueprints
- 新印象:解構UI界面設計
- 貫通Tomcat開發
- Ext JS 4 Plugin and Extension Development