Vue.set全局操作

Vue.set 的作用就是在构造器外部操作构造器内部的数据、属性或者方法。比如在vue构造器内部定义了一个count为1的数据,我们在构造器外部定义了一个方法,要每次点击按钮给值加1.就需要用到Vue.set。
// 构造器外部数据
     wrapData ={
        number:1
     }
       var vm = new Vue({
            el:"#app",
            data:wrapData,  //引入外部数据(非内部构造器里面的)
            methods:{
                add:function(){
                    this.number++;
                }
            }
       })
在外部改变数据的三种方法   *这些个button按钮都是写在外部不在new  vue({})作用域里面
1、用Vue.set改变
 function add(){
       Vue.set(outData,‘count‘,4);
 }
2、用Vue对象的方法添加
 function wrapAdd2(){
         vm.number++;
       }
3、直接操作外部数据
 function wrapAdd3(){
      wrapData.number++;
   }
为什么要有Vue.set的存在?
由于Javascript的限制,Vue不能自动检测以下变动的数组。
*当你利用索引直接设置一个项时,vue不会为我们自动更新。
*当你修改数组的长度时,vue不会为我们自动更新。
上面不是说到了三种改变number值得方法吗,如果是改变数组,通过下标,那三种方式中只有Vue.set会起作用,这也就是它存在的意义

html

<div id="app">
        <!-- <span v-text="number"></span> -->
        <ul>
            <li v-for="item of items">{{item}}</li>
        </ul>
    </div>

js

function  wrapAdd(){
           // vm.items[0]=12; //外部调用vue属性方法不起作用
           // wrapData[0]=12; //外部直接操作数组也是不起作用
           // 这时候Vue.set在对数组方面就凸显出用处了
           Vue.set(vm.items,1,12)
      }
    var wrapData =[20,30,45]

       var vm = new Vue({
            el:"#app",
            data:{
                items:wrapData
            }  //引入外部数据(非内部构造器里面的)
       })
时间: 2024-10-10 17:41:59

Vue.set全局操作的相关文章

vue 中 直接操作 cookie 及 如何使用工具 js-cookie

vue 中直接操作 cookie 以下3种操作方式 set: function (name, value, days) { var d = new Date; d.setTime(d.getTime() + 24*60*60*1000*days); window.document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString(); }, get: function (name) {

Vue 配置全局请求参数遇到的问题 登录后使用 this.$router.push(&#39;/Index&#39;) 跳转的问题(场景有点怪)

设置了全局请求 global_var.js 1 const postData = new URLSearchParams() 2 postData.set('user_id', localStorage.getItem("user_id")) 3 postData.set('utoken', localStorage.getItem("utoken")) 4 5 export default { 6 postData 7 } 在登录后 使用无法使用全局变量的去拼接参

浅谈MyBatis-Plus学习之自定义全局操作及逻辑删除

一.自定义全局操作介绍 MP中提供扩展AutoSqlInjector可以自定义各种想要的 sql ,注入到全局中,相当于自定义MP 自动注入的方法.也就是说继承BaseMapper<T>接口时就带有的方法,在加载相应的配置环境时就会注入. 二.实现自定义全局操作如下 2.1.在实现的Mapper接口中定义方法 public interface EmployeeMapper extends BaseMapper<Employee> { /** * 自定义注入方法 * @return

使用vue实现tab操作

在使用jQuery类库实现tab功能时,是获取鼠标在mousenter或click时的index值,然后切换到当前的标题和内容,把其他的标题和内容的状态去掉: $('.tab .title').find('.item')     .removeClass('current').eq(index).addClass('current'); // 为index位置的title添加current$('.tab .content').find('.item')     .hide().eq(index)

vue的全局组件和局部组件

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>全局组件.局部组件</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script></head><body><div id="a

vue的全局引用

1 一般在vue中,有很多vue组件,这些组件每个都是一个文件.都可能需要引用到相同模块(或者插件).我们不想每个文件都import 一次模块. 如果是基于vue.js编写的插件我们可以用 Vue.use(...) main.js 2 但是如果想添加一个全局命令,同时又让每个vue的文件都能用到怎么办? 第一步:最好建立一个全局的命令文件例如:directive/directive.js 第二步:利用Vue.directive()建立一个全局命令,并将它暴露出来,例如一个focus 让表单自动聚

Vue常用的操作指令

前几天给大家介绍了Vue的优点,还有安装步骤,今天给大家再介绍一下Vue常用的操作命令: 常用指令: v-text:用于显示文本 v-html:用于显示HTML 节点里面的内容 v-model:可以绑定 视图上面的数据模型 (数据模型需要在data中 初始化) v-for: 用于 遍历数组 v-for="value in array" ->写在 希望重复的元素上面 v-if v-else v-else-if v-show: 根据条件来显示 v-bind:用于绑定属性 简写 :cl

vue的全局方法和局部方法

var infiniteScroll = require('vue-infinite-scroll') 等价写法 import infiniteScroll from 'vue-infinite-scroll' Vue.use(infiniteScroll) //全局方法 var infiniteScroll = require('vue-infinite-scroll'); new Vue({ directives: {infiniteScroll} //局部方法(使用) })

vue 组件 全局注册与局部注册的方法

全局注册 html部分 <div id="e1"><name1></name1></div> script部分 <script type="text/javascript"> Vue.component('name1', { template: '<div>我是效果</div>'})   //定义全局模板        例如 Vue.component(tagName, option