需要打开浏览器 cors 插件
<body><style>* {margin: 0;padding: 0;box-sizing: border-box;}body{background-color: #d2d2d2;}ul {list-style: none;display: flex;flex-wrap: wrap;width: 1300px;margin: 0 auto;}ul li {width: 250px;margin: 0 10px 10px 0;background-color: #fff;border-radius: 10px;}ul li img{width: 250px;border-top-left-radius: 10px;border-top-right-radius: 10px;}.imggg{width: 100%;}.txt{padding: 10px;}.txt span{font-size: 14px;color: #666;}.txt p{width: 170px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;margin-bottom: 10px;}</style><div id='myApp'><ul><li is="my-com" v-for="item in arr" :key="item.room_id" :child-obj="item"></li></ul></div><!-- 组件模板 --><template id='myTem'><li><div class="imggg"><img :src="childObj.room_src" alt=""></div><div class="txt"><p>{{childObj.room_name}}</p><span>{{childObj.nickname}}</span><h3>{{name}}</h3></div></li></template><script src='https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js'></script><script>Vue.component('myCom', {template: '#myTem',data(){return{}// 问: 为什么组件中的data必须是一个函数// 在创建或注册模板的时候传入一个 data 属性作为用来绑定的数据。但是在组件中,data必须是一个函数,因为每一个 vue 组件都是一个 vue 实例,通过 new Vue() 实例化,引用同一个对象,如果 data 直接是一个对象的话,那么一旦修改其中一个组件的数据,其他组件相同数据就会被改变,而 data 是函数的话,每个 vue 组件的 data 都因为函数有了自己的作用域,互不干扰。},props: ["childObj"],})new Vue({el: '#myApp',data: {arr: []},created() {fetch("http://open.douyucdn.cn/api/RoomApi/live?page=1").then(res => {return res.json();}).then(data1 => {this.arr = data1.dataconsole.log(this.arr);})}})</script></body>
