Vue.js|Twitter 추적 리스트 같은 UI 만들기
19920 단어 JavaScriptVue.jsVuetifytech
다만, 위와 같은 경우 아이콘을 클릭할 수 없고, 클릭 시 버튼 상태 전환(색상 변경 등)이 고려되지 않아 간단하게 맞춤 제작을 시도했다.
우선 전체 코드는 여기에 있습니다.
List.js
<template>
<v-app>
<v-main>
<v-container>
<v-list subheader>
<!-- これは別になくてもいいです -->
<v-subheader>Recent chat</v-subheader>
<v-list-item
v-for="chat in recent"
:key="chat.title"
>
<v-list-item-avatar>
<v-img
:alt="`${chat.title} avatar`"
:src="chat.avatar"
></v-img>
</v-list-item-avatar>
<v-list-item-content class="text-left">
<v-list-item-title v-text="chat.title"></v-list-item-title>
</v-list-item-content>
<v-list-item-action>
<v-btn
v-if="!chat.active"
@click="chat.active = true"
text
icon>
<v-icon
color="grey lighten-1">
mdi-heart-outline
</v-icon>
</v-btn>
<v-btn
v-else
@click="chat.active = false"
text
icon>
<v-icon
color="pink">
mdi-heart
</v-icon>
</v-btn>
</v-list-item-action>
</v-list-item>
</v-list>
</v-container>
</v-main>
</v-app>
</template>
<script>
export default {
name: 'List',
data: () => ({
recent: [
{
active: true,
avatar: 'https://cdn.vuetifyjs.com/images/lists/1.jpg',
title: 'Jason Oner',
},
{
active: true,
avatar: 'https://cdn.vuetifyjs.com/images/lists/2.jpg',
title: 'Mike Carlson',
},
{
active: false,
avatar: 'https://cdn.vuetifyjs.com/images/lists/3.jpg',
title: 'Cindy Baker',
},
{
active: false,
avatar: 'https://cdn.vuetifyjs.com/images/lists/4.jpg',
title: 'Ali Connors',
},
],
}),
}
</script>
이렇게 된 느낌.자세한 상황을 좀 보겠습니다.
이것은 줄마다 데이터를 유지한다.active로 하트 컨트롤.
List.js
data: () => ({
recent: [
{
active: true,
avatar: 'https://cdn.vuetifyjs.com/images/lists/1.jpg',
title: 'Jason Oner',
},
{
active: true,
avatar: 'https://cdn.vuetifyjs.com/images/lists/2.jpg',
title: 'Mike Carlson',
},
{
active: false,
avatar: 'https://cdn.vuetifyjs.com/images/lists/3.jpg',
title: 'Cindy Baker',
},
{
active: false,
avatar: 'https://cdn.vuetifyjs.com/images/lists/4.jpg',
title: 'Ali Connors',
},
],
}),
}
목록이 여러 개 있습니다. for 회전을 사용하십시오.나중에active 등을 통해 데이터에 접근할 수 있는 값입니다.
v-list-item-content, v-list-item-avatar, v-list-item-action 등은 내용에 따라 적당한 표기와 기능이 있으니 공식 일람표를 보면서 대응하는 라벨을 사용하세요.작은 맞춤 제작을 하고 싶다면 그걸 보면서 조절하는 느낌을 보고 싶어요.
List.js
<v-list-item
v-for="chat in recent"
:key="chat.title"
>
이것은 실행 가능한 내용이다.v-if에서 채팅합니다.active의 값에 따라 아이콘의 표시를 전환합니다.mudi-heart-outline을 사용하면 화이트 컬러를 제거할 수 있어 편리한 느낌을 줄 수 있어요.
List.js
<v-list-item-action>
<v-btn
v-if="!chat.active"
@click="chat.active = true"
text
icon>
<v-icon
color="grey lighten-1">
mdi-heart-outline
</v-icon>
</v-btn>
<v-btn
v-else
@click="chat.active = false"
text
icon>
<v-icon
color="pink">
mdi-heart
</v-icon>
</v-btn>
</v-list-item-action>
그리고 채팅.active의 값을 누르면 이벤트에서 진실, 가짜로 바뀌면 하트 아이콘을 바꿀 수 있습니다.속성에 관해서는 text에서 단추식 디자인에서 아이콘만 디자인으로 변경할 수 있습니다.(보통 버튼을 사용하면 텍스트 링크가 됩니다.)
또 아이콘을 눌렀을 때 효과가 둥글어진다.
List.js
<v-btn
v-if="!chat.active"
@click="chat.active = true"
text
icon>
<v-icon
color="grey lighten-1">
mdi-heart-outline
</v-icon>
</v-btn>
그나저나 v-icon은 여기서 찾습니다. 비닐봉지에 기재하면 사용할 수 있습니다.Reference
이 문제에 관하여(Vue.js|Twitter 추적 리스트 같은 UI 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/knj/articles/d7aa30329dfa8e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)