vue.js - 如何传递给 Vue-JS 几个组件?

标签 vue.js

我不明白我应该创建新的 vue 实例,还是可以使用一个实例并将所有需要的组件放入其中。如果是,我该怎么做。这是我的代码:

window.onload = function() {

  var loginMenu = Vue.extend({
    template: `
                <nav class="navbar navbar-default">
                <div class="container-fluid">
                  <div class="navbar-header">
                    <a class="navbar-brand" href="#">
                      <img alt="Brand" src="">
                    </a>
                  </div>
                </div>
              </nav>
              `
  })

  var pageFooter = Vue.extend({
    template: `
                <div class="panel panel-default">
                  <div class="panel-body">
                    Panel content
                  </div>
                  <div class="panel-footer">Panel footer</div>
                </div>
              `
  })



  // register it with the tag <example>
  Vue.component('loginmenu', loginMenu),
  Vue.component('pagefooter', pageFooter)

  new Vue({
    el: '#loginmenu' //how pass another templates here??
  })


}

最佳答案

在您的主文件中,例如 index.html,添加一个主 js 文件,app.js 在您的 app.js 中包含所有组件。像这样的东西

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <!-- Required meta tags always come first -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
  </head>
  <body>
    <loginmenu></loginmenu>
    <pagefooter></pagefooter>
    <script type="text/javascript" src="app.js"></script>
  </body>
</html>

app.js

var loginMenu = Vue.extend({
    template: `
                <nav class="navbar navbar-default">
                <div class="container-fluid">
                  <div class="navbar-header">
                    <a class="navbar-brand" href="#">
                      <img alt="Brand" src="">
                    </a>
                  </div>
                </div>
              </nav>
              `
  })

  var pageFooter = Vue.extend({
    template: `
                <div class="panel panel-default">
                  <div class="panel-body">
                    Panel content
                  </div>
                  <div class="panel-footer">Panel footer</div>
                </div>
              `
  })



  // register it with the tag <example>
  Vue.component('loginmenu', loginMenu),
  Vue.component('pagefooter', pageFooter)

  new Vue({
    el: 'body',
    components:  {
        'loginmenu': loginMenu,
        'pagefooter', pageFooter
    }
  })

关于vue.js - 如何传递给 Vue-JS 几个组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34480083/

相关文章:

javascript - 如何在Vue组件中使用依赖?

javascript - Vue 中的链接 Promise 未按预期工作

Vue.js 通过 httpVueLoader 传递数据

javascript - Vue.js:如何从 vue Chart.js 的 API 检索数据

javascript - 使用 Jest 测试 Nuxt + Vuex + Vuetify 的设置

html - W3C 验证和 Vue 的 HTML 绑定(bind)语法

javascript - Vue.js + Vuex 中的 DRY

vue.js - 如何知道 vue.js 中哪个输入是焦点?

vue.js - VueJS 评估转义字符

javascript - Vue 在向数组添加非顺序索引时不断添加未定义的值?