Чтобы достичь желаемого поведения, было бы неплохо иметь какое-то свойство для объекта, которое бы указывало, является ли вещь видимой или нет.
eleObjects:[
{name: "HTML5", description: "Used for front end web development more specifically for building the structure of a website", visible: false},
{name: "CSS3", description: "Used for giving style to the HTML elements, their positioning and overall look of the website", visible: false},
{name: "JavaScript 2015", description: "Used for event handling, functionality and dynamics of the website", visible: false},
{name: "Vue JS", description: "JavaScript framework for component based programming which is used to create more dynamic websites", visible: false},
{name: "Django.py", description: "Python framewrok used for the backend of the website aka storing data, displaying data templates etc...", visible: false}
]
Из цикла v-for
вы можете получить индекс, и то же самоепередача индекса в функцию expand
, так что вы можете получить доступ к элементу, по которому щелкнули, из метода.
<li v-for="(eleObject, index) in eleObjects">
<h1 @click="expand(index)" v-text="eleObject.name"></h1>
<h3 v-show="eleObject.visible" v-text="eleObject.description"></h3>
</li>
expand
метод должен быть простым, мы только хотим обновить visible
состояние элемента, по которому щелкнули.
expand: function(index){
this.eleObjects[index].visible = !this.eleObjects[index].visible;
}
Вот последняя демонстрация: https://jsbin.com/jiduzoduri/1/edit?html,js,output