我正在尝试运行这个 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/
1 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
您的脚本指向 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应在div
id之外定义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 调用。
添加回答
举报
0/150
提交
取消