VueJS CDN 导入错误。未捕获的类型错误。Vue 组件不是一个函数

我正在尝试运行这个 Reddit 克隆。


我导入了不同类型的Vue CDN,


<script src="https://unpkg.com/vue@next"></script>


Uncaught TypeError: Vue.component is not a function"

我不确定我是否导入了错误版本的 Vue,或者我在 jsfiddle 上的设置是否错误。


var subreddit = Vue.component('subreddit',{

template: '#subreddit',

props: ['name'],


data: function () {

    return { posts: [] }

},


created: function(){

    this.$http.get("https://www.reddit.com/r/"+ this.name +"/top.json?limit=3")

    .then(function(resp){

        this.posts=resp.data.data.children;

    });

}

});

完整代码在这里:


https://jsfiddle.net/jm0vs2kn/22/


函数式编程
浏览 132回答 1
1回答

蝴蝶不菲

您的脚本指向 Vue 版本 3 @next,该版本在全局 API 中进行了一些重大更改,要与 Vue 2 配合使用, <script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>您还应该在文档中创建一个 div,body然后<body><div id="app"></div> ...像这样安装 vue 应用程序new Vue({el: '#app'});您的x-templates应在divid之外定义app,如下所示: <script type="text/x-template" id="subreddit">        <div class="subreddit">            <h2>{{ name | uppercase }}</h2>            <ul class="item-list">                <li v-for="obj in posts">                    <post :item="obj"></post>                </li>            </ul>        </div>    </script><div id="#app">应该<div id="app">并且.then(function(resp){应该是一个箭头函数.then((resp)=>{下面的示例用于axios进行 ajax 调用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript