Vue.js, Onclick или Clicks (из других пунктов меню): переключение между несколькими компонентами - PullRequest
0 голосов
/ 29 ноября 2018

В настоящее время я делаю приложение для составления бюджета в Vue, которое меняется с использованием MediaQueries для размера экрана и сетки для макета.Я новичок в Vue, и я пытаюсь щелкнуть изменить "grid-template-area:" из разных выбранных кнопок.Например, нажмите кнопку «P»: не показывать покупки и не отображать бюджет, когда нажата кнопка «S»: показывать статистику и «не показывать покупки» и т. Д. Но проблема только в мобильных представлениях.Любая помощь или предложения о том, как все должно быть сделано, были бы великолепны.

Github Repo для всего проекта:
https://github.com/LandonHarvey/BudgetProject.git Филиал VueSideProject

Текущий код:

<template>
     <div id="app">
            <budheader/>
            <sidebar/>
            <div id="mobileSidebar">
                <div id="mobileMenuSidebar" class="box"><button class="circle" v-bind:style="buttonCircle" v-on:click="miniOpen = !miniOpen">M</button></div>
                <div v-if="miniOpen"><button id="statsBubble" class="minicircle">S</button></div>
                <div v-if="miniOpen"><button id="purchaseBubble" class="minicircle">P</button></div>
                <div v-if="miniOpen"><button id="settingBubble" class="minicircle">O</button></div>
            </div>
            <purchase/>
            <budgetandFinancialsContainer/>
            <budfooter/>
        </div>
</template>

Script:

    <script>
    import budheader from './components/budheader.vue';
    import sidebar from './components/sidebar.vue';
    import purchase from './components/purchase.vue';
import budgetandFinancialsContainer from './components/budgetandFinancialsContainer.vue';
import budfooter from './components/budfooter.vue';


export default {
        name: 'App',
        components: {
        budheader,
        sidebar,
        purchase,
        budgetandFinancialsContainer,
        budfooter,
        },
        data: () => {
            return {
                buttonCircle: {
                    background: 'blue',
                },
                miniOpen: false,
            };
        },
    };
</script>

CSS

#app {
    height: 100vh;
    display: grid;
    grid-gap: .1em;
    grid-template-rows: 100%;
    grid-template-areas:
            "budgetAndFinancials";
}



@media screen and (min-width: 768px) { 

    #app {
        grid-template-columns: 6% 35% auto;
        grid-template-rows: 100%;
        grid-gap: .1em;
        grid-template-areas:
                "sidebar budgetAndFinancials purchase";
    }

    #mobileSidebar {
        display: none;
    }

}

@media screen and (min-width: 1024px) {

    #app {
        grid-template-columns: 45% 55%;
        grid-template-rows: .8fr 8.7fr .5fr;
        grid-gap: .1em;
        grid-template-areas:
                "header header"
                "budgetAndFinancials purchase"
                "footer footer";
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...