全局API之Vue.set 监听数据层的数据变化

全局API之Vue.set 监听数据层的数据变化

Vue.set` Vue的核心具有一套响应式系统,简单来说就是通过监听器监听数据层的数据变化,当数据改变后,通知视图也自动更新。

Vue.set用于向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。

如果数据源是数组

第一个参数是数组,第二个是索引,第三个是索引对应的值

格式:this.$set(target,index,value)

格式1:this.$set(this.数组名,索引,值)

格式2:this.$set(this.数组名.push("添加的值"))

例题练习

要求:点击一下添加按钮,就会在数组最后一位的基础上加1,添加到数组里,并实时显示到页面上

<!--点击一下添加按钮,就会在数组最后一位的基础上加1,添加到数组里,并实时显示到页面上-->
<body>
    <div id="app"> 
        <button @click="adds">添加</button> 
        <button @click="update">修改</button>
        <p v-for="value in itme"> {{value}}</p> 
    </div>
    <script>
        var vm=new Vue({
            el:"#app",
            data:{
                num:2,
                itme:[1,2]
            },
            methods:{
              adds(){
                  this.num++
                  this.$set(this.itme.push(this.num))
              },
              update(){
 //把数组itme下标为0的值修改成了"数组下标为0的变成了我!"
      this.$set(this.itme,0,"数组下标为0的变成了我!")
              }
            }
        })
    </script>
</body>

如果数据源是对象

第一个参数是对象,第二个是属性名,第三个是属性对应的值

格式:Vue.set(target,"key",value)

格式1:Vue.set(vm.对象名,"对象属性",对象值)

格式2:this.$set(this.对象名,"对象属性",对象值)

例题练习

要求:点击一下修改按钮,就会更改对象里的数据,并实时显示到页面上

<!--点击一下修改按钮,就会更改对象里的数据,并实时显示到页面上-->
<body>
    <div id="app"> 
        <button @click="update">修改</button>
        <table border="1">
            <tr>
                <th>姓名</th>
                <th>性别</th>
                <th>年龄</th>
            </tr>
            <tr>
                <td>{{stundent.name}}</td>
                <td>{{stundent.sex}}</td>
                <td>{{stundent.age}}</td>
            </tr>
        </table>
    </div>
    <script>
        var vm=new Vue({
            el:"#app",
            data:{
                stundent:{
                name:"张三",
                 sex:"女",
                 age:18
               }
            },
            methods:{
              update(){
                  //使用this一定要加上$符号
                 this.$set(this.stundent,"name","李四")
                 //Vue不用加$符号,vm就是本题的vue对象
                 Vue.set(vm.stundent,"sex","男")
                 Vue.set(this.stundent,"age",30)
              }
            }
        })
    </script>
</body>
posted @   永恒之月TEL  阅读(112)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开
  1. 1 Welcome Home REOL
  2. 2 Everywhere We Go REOL
  3. 3 凄美地 REOL
  4. 4 最后一页 REOL
Everywhere We Go - REOL
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 陈冠希/MC仁/厨房仔

作曲 : Wyshmaster

编曲 : Wyshmaster

应采儿:

应采儿:

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储

厨房仔:

走 去一个冇压力嘅地方

尽情释放 唔驶理人哋眼光

黑色白色 唔驶睇人面色

意识空间 拥有无穷面积

日出 日落 升空 降落

一幕又一幕 如梦生命片段重现

边一幕最值得回味快乐

世世代代 一个一个部落起落

边度着落 降临福地

地球人 已经忘记 幸福 气味

太空旅程 一步内 由呢度去到个度

两道光线引导 启动星际航导

随意门 去边度就边度

感应天路 走佬

应采儿:

On a boat on a train or in an airplane

There's nothing I'd rather do

When we fly in the sky and we go so high

I've got the world with you

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储

陈冠希:

细个个阵时日日喺度发梦

老师话我长大之后一定冇用

你咁嘅态度 我戥你老豆老母阴公

但系今时今日 超西飞喺天空

飞 飞到洛杉矶

飞飞飞 继续超越自己

而家飞飞飞度边度都似我屋企

同我之前啲老师

我而家举起我个杯

我冇放喺心内向你敬礼

一齐猜猜个枚

247 玩成晚我同啲兄弟

唔会嗌攰

代表 clot 你可以叫我地 clot crew

巴黎东京纽约马尔代夫

感觉世界好闷

细个发啲梦开始变现实

除咗佢我个世界争咩 无乜

应采儿:

On a boat on a train or in an airplane

There's nothing I'd rather do

When we fly in the sky and we go so high

I've got the world with you

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储

MC仁:

准备包袱走路 一步一步计算好

冇最后说话 最后手稿

冇嘢要透露 冇人走宝

掉埋包袱走佬 冇论乜嘢地步

不理疲劳

天与地当被铺 冇任务 几咁好

应采儿:

On a boat on a train or in an airplane

There's nothing I'd rather do

When we fly in the sky and we go so high

I've got the world with you

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储