账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue Object.assign导致源对象被改变
    30
    0

    其中settings assest文件夹中的json, 经过log方法后源文件被改变了。

    import vuedraggable from 'vuedraggable'
    import RenderString from './RenderString'
    import { mapState, mapMutations } from 'vuex'
    import settings from '@/assets/settings.json'
    
    export default {
      name: 'ShowArea',
      components: {
        vuedraggable,
        RenderString
      },
      data () {
        return {
          list: [],
          active: -1
        }
      },
      computed: {
        ...mapState({
          attrs: state => state.attrs
        })
      },
      methods: {
        selected (item, index) {
          this.active = index
        },
        log (t) {
          for (let i in t) {
            this.active = t[i].newIndex
            const item = this.list[this.active]
            if (i === 'added') {
              const d = window.Object.assign({}, settings[item.name], { name: item.name })
              console.log(settings) // 这个json文件内容被改变了
              const arr = this.attrs
              arr.splice(this.active, 1, d)
              this.setAttrs(arr)
            }
          }
        },
        ...mapMutations({
          setAttrs: 'changeAttrs',
          setActiveAttrs: 'setActiveAttrs'
        })
      },
      watch: {
        active () {
          this.setActiveAttrs(this.active)
        }
      }
    }
    </script>
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部