老师报错了

老师报错了

http://img1.sycdn.imooc.com//climg/5fe2308b095a225015250699.jpg


跟着本次视频敲完之后就这样了,但是点击上海还是可以跳转

<template>

  <div>

    <home-header></home-header>

    <home-swiper :list="swiperList"></home-swiper>

    <home-icons :list="iconList"></home-icons>

    <home-recommend :list="recommendList"></home-recommend>

    <home-weekend :list="weekendList"></home-weekend>

  </div>

</template>


<script>

  import HomeHeader from './components/Header'

  import HomeSwiper from './components/Swiper'

  import HomeIcons from './components/Icons'

  import HomeRecommend from './components/Recommend'

  import HomeWeekend from './components/Weekend'

  import axios from 'axios'

  export default{

    name: 'Home',

    components:{

      HomeHeader,

      HomeSwiper,

      HomeIcons,

      HomeRecommend,

      HomeWeekend

    },

    data () {

      return{

        // city: '',

        swiperList: [],

        iconList: [],

        recommendList: [],

        weekendList: []

      }

    },

    methods: {

      getHomeInfo(){

        //2、而axios请求返回的就是一个promise对象,这是Es6promise内部封装好的,我们看不到,

        axios.get('/api/index.json')

          //1、getHomeInfoSucc本身是一个函数,所以可以直接放在then中作为第一个回调函数

          .then(this.getHomeInfoSucc)

      },

      //3、只要知道,当get请求成功,则返回成功状态。后面then中的第一个回调函数,就会接收请求过来的数据

      getHomeInfoSucc(res){

        //4、res表示get数据请求后返回的数据,即res是我们自己定义的形参,接收实参值

        res = res.data

        if (res.ret && res.data) {

          const data = res.data

          // this.city = data.city

          this.swiperList = data.swiperList

          this.iconList = data.iconList

          this.recommendList = data.recommendList

          this.weekendList = data.weekendList

        }

        console.log(res)

      }

    },

    mounted(){

      //页面挂载好之后去执行getHomeInfo()这个函数

      this.getHomeInfo()

    }

  }

</script>


<style>


</style>







<template>

  <div class="header">

    <div class="header-left">

      <div class="iconfont back-icon">&#xe624;</div>

    </div>

    <div class="header-input">

      <span class="iconfont">&#xe632;</span>

      输入城市/景点/游玩主题</div>

    <router-link to="/city">  <!-- router-link是做页面跳转的内置组件 -->

      <div class="header-right">

        {{this.$store.state.city}}

        <span class="iconfont arrow-icon">&#xe64a;</span>

       </div>

    </router-link>

  </div>

</template>


<script>

  export default{

    name:'HomeHeader',

//     props: {

//       city : String

//

//     }

  }

</script>


<style scoped>

  // scoped属性限制这个header样式只对当前组件有效,不会对其他组件产生任何的影响

  // 样式里面引入样式不能直接import,需要前面加一个@符号

  //也可以直接使用@符号代表src文件夹,但是在css文件中一定要在@符号前面加上~

  @import '~@/assets/styles/varibles.styl'

  //@import '~styles/varibles.styl'

  .header

    display:flex

    line-height: .86rem

    background: $bgColor

    color: #fff

    .header-left

      width:.64rem

      float:left

      .back-icon

        text-align: center

        font-size: .4rem

    .header-input

      flex:1

      height: .64rem

      line-height: .64rem

      margin-top: .12rem

      margin-left: .2rem

      padding-left: .2rem

      background: #FFFFFF

      border-radius :.1rem

      color: #ccc

    .header-right

      width: 1.24rem

      float: right

      text-align: center

      color: #fff

      .arrow-icon

        margin-left: -.04rem

        font-size: .24rem

</style>










//main.js是项目的入口文件


// The Vue build version to load with the `import` command

// (runtime-only or standalone) has been set in webpack.base.conf with an alias.

import Vue from 'vue'

import App from './App'

// 引入了router,自动的帮你引入router文件夹下面的index.js文件

import router from './router'

import fastClick from 'fastclick'

import VueAwesomeSwiper from 'vue-awesome-swiper'

import store from './store'

import './assets/styles/reset.css'

import './assets/styles/border.css'

import './assets/styles/iconfont.css'

import 'swiper/dist/css/swiper.css'


Vue.config.productionTip = false

//把fastClick绑定到document.body之上

fastClick.attach(document.body)

Vue.use(VueAwesomeSwiper)


/* eslint-disable no-new */

new Vue({

  el: '#app',

  router,

  store,

  components: { App },

  template: '<App/>'

})

//路由就是根据网址的不同,返回不同的内容给用户





正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕糖 2020-12-23 11:44:01

同学你好,老师这里测试,并没有报错哦,只不过其他代码使用的是源码中的文件,同学可以刷新,再次尝试下,若还是有错误,可以将其他代码也粘贴过来,便于准确的定位与解决问题。

祝学习愉快~

  • 提问者 hyperse #1

    老师我又重新看视频试了一下,没有报错了,但是home页面都不显示内容,代码还是上面那些,请问大概出问题会在哪里呢?

    http://img1.sycdn.imooc.com//climg/5fe38205091ecd7014120643.jpg

    2020-12-24 01:44:39
  • 好帮手慕糖 回复 提问者 hyperse #2

    同学你好,如下老师这里测试,是可以显示的哦。

    http://img1.sycdn.imooc.com//climg/5fe3f6d10928fe7e03760619.jpg

    同学的是内容没有显示,可能是数据没有获取到,或者是没有准确传递给子组件导致的。

    建议:可以将获取的数据数组下。然后在子组件中也输出下,看是否成功传递了。

    可以参考如下方式查看:

    父组件中传递的值:

    http://img1.sycdn.imooc.com//climg/5fe3f8e909f5d09107470101.jpg

    在子组件输出下,看是否正确传递。


    http://img1.sycdn.imooc.com//climg/5fe3f8cc09ffbf5d04850329.jpg

    结果:

    http://img1.sycdn.imooc.com//climg/5fe3f8f209bccc0e07520092.jpg

    若是还是不行的话,可以将子组件的文件粘贴过来一个哦,老师帮你测试下。

    祝学习愉快~

    2020-12-24 10:13:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师