美文网首页
cli,导航完成后获取数据/在导航完成前获取数据

cli,导航完成后获取数据/在导航完成前获取数据

作者: issac_宝华 | 来源:发表于2017-08-31 23:33 被阅读0次
    <template>
      <div class="post">
        <div class="loading" v-if="loading">
          Loading...
        </div>
    
        <div v-if="error" class="error">
          {{ error }}
        </div>
    
        <div v-if="post" class="content">
          <h2>{{ post.title }}</h2>
          <p>{{ post.body }}</p>
        </div>
      </div>
    </template>
    export default {
      data () {
        return {
          loading: false,
          post: null,
          error: null
        }
      },
      created () {
        // 组件创建完后获取数据,
        // 此时 data 已经被 observed 了
        this.fetchData()
      },
      watch: {
        // 如果路由有变化,会再次执行该方法
        '$route': 'fetchData'
      },
      methods: {
        fetchData () {
          this.error = this.post = null
          this.loading = true
          // replace getPost with your data fetching util / API wrapper
          getPost(this.$route.params.id, (err, post) => {
            this.loading = false
            if (err) {
              this.error = err.toString()
            } else {
              this.post = post
            }
          })
        }
      }
    }
    

    在导航完成前获取数据

    export default {
      data () {
        return {
          post: null,
          error: null
        }
      },
      beforeRouteEnter (to, from, next) {
        getPost(to.params.id, (err, post) => 
          if (err) {
            // display some global error message
            next(false)
          } else {
            next(vm => {
              vm.post = post
            })
          }
        })
      },
      // 路由改变前,组件就已经渲染完了
      // 逻辑稍稍不同
      watch: {
        $route () {
          this.post = null
          getPost(this.$route.params.id, (err, post) => {
            if (err) {
              this.error = err.toString()
            } else {
              this.post = post
            }
          })
        }
      }
    }
    

    相关文章

      网友评论

          本文标题:cli,导航完成后获取数据/在导航完成前获取数据

          本文链接:https://www.haomeiwen.com/subject/svfcjxtx.html