A Pen by Tristan Bailey on CodePen.
Created
November 13, 2017 13:14
-
-
Save tristanbailey/b3d6ad0ee61f1a5137bca64889f1fcf6 to your computer and use it in GitHub Desktop.
Ripple events down to components using watch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div id="app"> | |
<button @click="changeAll(true)"> | |
OPEN ALL THE BOXES | |
</button> | |
<button @click="changeAll(false)"> | |
Close ALL THE BOXES | |
</button> | |
<drop-down :override="override">Hello</drop-down> | |
<drop-down :override="override">Hello</drop-down> | |
<drop-down :override="override">Hello</drop-down> | |
<drop-down :override="override">Hello</drop-down> | |
<drop-down :override="override">Hello</drop-down> | |
<drop-down :override="override">Hello</drop-down> | |
<drop-down :override="override">Hello</drop-down> | |
<drop-down :override="override">Hello</drop-down> | |
<drop-down :override="override">Hello</drop-down> | |
</div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const DropDown = { | |
name: 'DropDown', | |
props: ['override'], | |
template: `<div class="dropdown"> | |
<h3 @click="toggle">Title</h3> | |
<div v-show="isOpen"><slot></slot></div> | |
</div>`, | |
data() { | |
return { | |
isOpen: false | |
} | |
}, | |
methods: { | |
toggle() { | |
this.isOpen = !this.isOpen; | |
} | |
}, | |
watch: { | |
override() { | |
this.isOpen = this.override | |
} | |
} | |
} | |
new Vue({ | |
el: '#app', | |
components: { | |
DropDown | |
}, | |
data: { | |
override: false | |
}, | |
methods: { | |
changeAll(polarity) { | |
this.override = polarity | |
} | |
} | |
}) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.3/vue.min.js"></script> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.dropdown { | |
display: block; | |
padding: 0.1rem 0.5rem; | |
background: #f2f2f2; | |
margin: 0 auto 1rem; | |
max-width: 50rem; | |
} | |
h3 { | |
cursor: pointer; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment