首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue.js导入对象

Vue.js导入对象
EN

Stack Overflow用户
提问于 2020-03-27 12:23:34
回答 1查看 451关注 0票数 0

在将对象从App.vue文件导入组件时,我遇到了一个问题。但首先我要解释一下这个项目的目的。有一个组件(导航-抽屉)和一个App.vue文件。导航抽屉中有vue道具,您可以在App.vue文件中动态更改这些道具。问题是,我只能使用导航抽屉文件中的链接。

我想编辑它,这样我就可以使用我需要的多少链接,甚至不必打开导航-Drawer.vue文件。在我更详细地介绍之前,下面是带有道具的文件&链接数量有限:

App.vue

代码语言:javascript
复制
<template>
  <div id="app">
    <navigation-drawer
    name1="TFBern"
    name2="Stackoverflow"
    name3="YouTube"
    name4="Google"
    link1="https://vuejs.org"
    link2="https://stackoverflow.com"
    link3="https://youtube.com"
    link4="https://google.com"
    />

    <img alt="Vue logo" src="./assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>

  </div>
</template>

<script>
  import HelloWorld from './components/HelloWorld.vue'
  import NavigationDrawer from './components/Navigation-Drawer.vue'

  export default {
    name: 'App',
    components: {
      HelloWorld,
      NavigationDrawer
      }
    }
</script>

Navigation-Drawer.vue

代码语言:javascript
复制
<template>
    <div class="navigationdrawer">
        <span @click="openNav" style="fontsize:30px;cursor:pointer;display:flex;justify-content:center;">&#9776;</span>
        <div id="mySidenav" class="sidenav">
            <a href="javascript:void(0)" class="closebtn" @click="closeNav">&times;</a>
            <a v-bind:href="link1">{{ name1 }}</a>
            <a v-bind:href="link2">{{ name2 }}</a>
            <a v-bind:href="link3">{{ name3 }}</a>
            <a v-bind:href="link4">{{ name4 }}</a>
        </div>
    </div>
</template>

<script>
export default {
    name: 'NavigationDrawer',
    props: {
        name1: String,
        name2: String,
        name3: String,
        name4: String,
        link1: String,
        link2: String,
        link3: String,
        link4: String
 },

 methods: {
     openNav() {
         document.getElementById('mySidenav').style.width = '15%'
         },

    closeNav() {
        document.getElementById('mySidenav').style.width = '0%'
        }
    }
 }

</script>

现在,我想到的是创建一个js对象,它可以将链接从App.vue导入到抽屉中。就像这样:

代码语言:javascript
复制
<navigation-drawer links="[ {title="Google", link="www.google.ch"} , {title="Youtube", link="www.youtube.com"} , {title=…, link=…} ]"

我真的不知道怎么做..。有人能帮忙吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 12:28:47

你已经很接近答案了。将=更改为:,使用'而不是"包围的值,这样就有了一个对象列表

代码语言:javascript
复制
<navigation-drawer v-bind:links="[ {title:'Google', link:'www.google.ch'} , {title:'Youtube', link:'www.youtube.com'} , {title:…, link:…} ]"

然后导航抽屉里的道具看起来像:

代码语言:javascript
复制
props: {
    links: Array
},

并且html通过一个v-for模板的链接循环。

代码语言:javascript
复制
<div class="navigationdrawer">
    <span @click="openNav" style="fontsize:30px;cursor:pointer;display:flex;justify-content:center;">&#9776;</span>
    <div id="mySidenav" class="sidenav">
        <a href="javascript:void(0)" class="closebtn" @click="closeNav">&times;</a>
        <template v-for=v-for="(link, index) in links">
            <a v-bind:href="link.link"  :key="index">{{ link.title}}</a>
        </template>
    </div>
</div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60885937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档