Meteor 1.6.1 和 Vue 2 集成

Posted

技术标签:

【中文标题】Meteor 1.6.1 和 Vue 2 集成【英文标题】:Meteor 1.6.1 and Vue 2 integration 【发布时间】:2018-09-07 00:20:12 【问题描述】:

这两天我试图在我的 Meteor 项目中开始使用 Vue 2。首先我查找了一些包,发现了https://github.com/meteor-vue/vue-meteor,但除了包列表之外,它本身没有任何可用的东西,所以就是这样。对 Atmosphere 的单独搜索得到了我可以实际使用的东西,即https://atmospherejs.com/akryum/vue,但是尽管遵循了我可以找到的关于这个包的每条指令,但我认为它对我来说不能正常工作,例如,我没有得到关于组件热重载的控制台消息,只有通常的标准 Meteor 启动消息+文件更改时的消息。它不使用client/main.html 文件,除非我在client/main.js 中显式导入它,但随后我得到一个关于缺少模块./main.html 的运行时错误,即使我可以清楚地看到然后渲染的模板,但是w /o Vue 魔法在其中。在提供的示例项目(没有 Blaze)中,我没有看到任何地方都明确导入了 HTML,所以这里肯定有一些问题。在任何生成的输出中都没有其他提示和线索。所以我陷入了困境。

P。 S. 我也刚刚意识到它甚至对 .vue 组件没有任何作用,因为 1) 我忘记将导入从 .js 更改为 .vue,并且应用程序在任何时候都没有崩溃,并且然后,导入的.vue 文件实际上在语法上是错误的,直到我刚刚修复它。

【问题讨论】:

即使我也面临同样的问题。我喜欢 vue js。但是你可以开始使用 react js,因为它拥有庞大的社区支持,并且 react js 正在流行起来。带有流星的 Vue js 可能有很多开发人员,但仍然缺乏对 *** 的支持。如果你想开始用流星学习 react js,非常简单,你可以关注 YouTube 上的 Levelup 教程。 如果您还在市场上寻找样板 - 前几天发现:“Vue + Meteor 产品的极简样板。” GitHub - alexandesigner/lets: 有很多'candy-floss' - Stylus 之类的 - 但除此之外,这是一个很好的开始 【参考方案1】:

我正在使用以下设置。

.meteor/包

meteor-base@1.3.0             # Packages every Meteor app needs to have mobile-
experience@1.0.5              # Packages for a great mobile UX 
mongo@1.4.2                   # The database Meteor supports right now  
tracker@1.1.3                 # Meteor's client-side reactive programming library

standard-minifier-js@2.3.1    # JS minifier run for production mode 
es5-shim@4.7.0                # ECMAScript 5 compatibility for older browsers 
ecmascript@0.10.6             # Enable ECMAScript2015+ syntax in app code

shell-server@0.3.1            # Server-side component of the `meteor shell` command

static-html akryum:vue-component 
akryum:vue-blaze-template 
session@1.1.7 
check 
dynamic-import@0.3.0 
fourseven:scss 
seba:minifiers-autoprefixer

package.json


  "private": true,
  "scripts": 
    "start": "meteor run"
  ,
  "dependencies": 
    "@babel/runtime": "^7.0.0-beta.44",
    "meteor-node-stubs": "~0.2.0",
    "@deveodk/vue-toastr": "^1.0.4",
    "babel-runtime": "^6.23.0",
    "bcrypt": "^1.0.2",
    "vue": "^2.2.6",
    "vue-router": "^2.5.1",
    "vuex": "^2.3.1"
  ,
  "devDependencies": 

客户目录

客户端/main.html

<body class="pace-done md-skin">
    <div id="app"></div>
</body>

客户端/main.scss

// Libs
import Meteor from 'meteor/meteor'
import Vue from 'vue'
import  router  from '/imports/client/plugins/router';
import store from '/imports/vuex/store'
import AppLayout from '/imports/client/ui/AppLayout.vue'

// import '/imports/client/plugins/plugin_name'

// App start
Meteor.startup(() => 
    new Vue(
        store,
        router,
        el: '#app',
        render: h => h(AppLayout)
    )
);

Rest 是标准的 vue。我可以添加 AppLayout.vue 来说明我的意思

/imports/client/ui/AppLayout.vue

<template>

  <router-view></router-view>

</template>

<script>
  export default 
      name: 'AppLayout'
  
</script>

【讨论】:

【参考方案2】:

我开始记录我在尝试集成这两种技术时的经验。想看更多:https://forums.meteor.com/t/meteor-vue-in-2018/44246

我有一些不同的文件夹结构,但希望它仍然相关。

【讨论】:

【参考方案3】:

对于 Meteor + Vue 的入门样板,完美的捆绑 + 包选择是 Akryum 的 https://github.com/meteor-vue/vue-meteor-demo

我使用了它,并且毫无问题地部署到了银河系。出色的开始。

此样板包含: Meteor 1.4 - 1.7+ + tracker + Vuejs 2 + vue-router + vuex (store) + graphql 设置。

干杯

【讨论】:

【参考方案4】:

我写了一篇文章,详细描述了在 Meteor 应用程序中安装 Vue 和 Vue Router 的步骤。我不喜欢在 *** 上放置链接,但这里的答案中包含的细节太多了。

https://medium.com/@simonjcarr/adding-vue-and-vue-router-to-meteor-7c411131494f

【讨论】:

以上是关于Meteor 1.6.1 和 Vue 2 集成的主要内容,如果未能解决你的问题,请参考以下文章

在 Jasmine 中访问 Meteor 模板辅助函数以进行集成测试

Meteor+AngularJs 示例

Imagemagick 与 Meteor 集成

将 Express.js-REST-Endpoint 与 Meteor 应用程序集成

11.开发newapp个人中心pages/me/me.vue和修改密码功能

Meteor:使用 reactiveVar 观察集合