这里不更新明白,报错是正确的吗

来源:3-1 Vue实例

unbreakable_全栈

2020-11-22 16:27:47

# 具体遇到的问题

# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

<!DOCTYPE html>

<html lang="en">


<head>

   <meta charset="UTF-8">

   <meta name="viewport" content="width=device-width, initial-scale=1.0">

   <title>Document</title>

   <script src="./vue.js"></script>

</head>


<body>

<div id="root">

   <div @click="handleClick">{{foo}}</div>

   <!-- 这里的 `foo` 不会更新! -->

   <!-- TODO 这里不更新明白,报错是正确的吗 -->

   <button @click="foo = 'baz'">change it</button>

   <item></item>

</div>

</body>

<script>

   Vue.component('Item', {

      template: '<div>hello vue.js</div>'

   }) 

   var obj = {

      foo: 'bar'

   }

   Object.freeze(obj)

   var vm = new Vue({

      el: '#root',

      data: obj,

      methods: {

         handleClick () {

            alert('helo')

         }

      },

   })

</script>


</html>


写回答

1回答

好帮手慕夭夭

2020-11-22

同学你好,报错的意思是“无法为对象的只读属性赋值”,即如下代码报错:

http://img.mukewang.com/climg/5fba305a09b8ba1b05100041.jpg

代码中通过Object.freeze冻结了对象obj,所以它的属性foo是只读的,不能修改。把如下去掉测试,就不报错了:

http://img.mukewang.com/climg/5fba30b7099574a603280101.jpg

祝学习愉快~

0

0 学习 · 10739 问题

查看课程