关于本文 “this.clearData ()” 使用,有些自己的理解

文章内使用有三次

  1. beforeRouteLeave()
  2. watch.'$route'
  3. methods.setArticleId(),此处又被beforeRouteEnter调用

那就是离开页面进入页面路由参数变动都会清空编辑器内容,但是我看了Laravel社区的发帖,编辑一半离开是不会清空编辑器内容的,所以下面是我的修改:

/**
注释掉这两方法
beforeRouteLeave(to, from, next) {
    this.clearData()
    next()
},
  watch: {
    '$route'(to) {
        this.clearData()
        this.setArticleId(to.params.articleId)
    }
},
**/
//主要修改地方
setArticleId(articleId) {
    /**
    要undefined不要null,js基础不太好,写法感觉怪怪的
    进入创建 -->(写内容)-->离开(未保存)-->返回创建页面(内容并不会清空)
    编辑页面-->(修改内容)-->离开(未保存)-->返回之前修改页面(之前编辑一半的内容也还在)
    **/
    const localArticleId = ls.getItem('articleId') === null ? undefined :ls.getItem('articleId')
    //手动跳转清空数据,去掉了 articleId!== undefined
    if(articleId !==localArticleId){
        this.clearData()
    }

    this.articleId = articleId

    this.fullContent(articleId)
    //记录本此编辑文章ID,手动跳转检测
    ls.setItem('articleId', articleId)
},

我这种写法只会再进进入本页面的时候才会判断之前保存的内容应不应该清空,也就是说二次进入之前的操作页面(不管编辑还是创建),之前操作到一半的内容还保留着。

另外学到这里点赞没几个人,评论更没人了,我好孤独

讨论数量: 1

我还在啃教程,这2节有点难懂了

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!