实例方法和数量,vue实例方法

作者: 韦德国际1946国际网址  发布:2019-06-03

1.前言

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能社——http://www.zhinengshe.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>
    </style>
    <script src="vue.js"></script>
    <script>
    </script>
</head>
<body>
    <div id="box">
        {{a}}
    </div>
    <script>
        var vm=new Vue({
            el:'#box',
            data:{
                a:1
            }
        });
        console.log(vm.$el);//div元素
        vm.$el.style.background='red';//元素变红
        console.log(vm.$data.a);
    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能社——http://www.zhinengshe.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>

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

    </script>
</head>
<body>
    <div id="box">
        {{a}}
    </div>
    <script>
        var vm=new Vue({
            el:'#box',
            data:{
                a:1
            }
        });

        console.log(vm.$data.a);
    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能社——http://www.zhinengshe.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>
    </style>
    <script src="vue.js"></script>
    <script>
    </script>
</head>
<body>
    <div id="box">

    </div>
    <script>
        //angular.bootstrap
        var vm=new Vue({
            data:{
                a:1
            }
        });
        vm.$mount('#box'); //手动挂载


        var vm=new Vue({
            data:{
                a:1
            }
        }).$mount('#box');
    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能社——http://www.zhinengshe.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>
    </style>
    <script src="vue.js"></script>
    <script>
    </script>
</head>
<body>
    <div id="box">

        <br>
        {{aa}}
    </div>
    <script>
        var vm=new Vue({
            aa:11, //自定义属性,
            show:function(){//自定义方法,不再methods里面,
                alert(1);
            },
            data:{
                a:1
            }
        }).$mount('#box');

        vm.$options.show();//自定义方法
        console.log(vm.$options.aa);//自定义属性,
    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能社——http://www.zhinengshe.com</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>
    </style>
    <script src="vue.js"></script>
    <script>
    </script>
</head>
<body>
    <div id="box">

    </div>
    <script>
        var vm=new Vue({
            data:{
                a:1,
                b:2
            }
        }).$mount('#box');

        console.log(vm.$log());//{a:1,b:2}打印data
    </script>
</body>
</html>

详解vue 实例方法和多少,详解vue实例数据

1.vm.$set

难点讲述:

什么样在不通过轮回数据给list数据增进三个showMore属性,并且在moreFun中改动那么些新增加属性的值,并落到实处双向绑定?

<template>
 <div id="app">
  <div class="demo">
   <ul>
    <template v-for="(v,index) in list">
     <li>{{v.name}}</li>
     <div v-show="!v.showMore">
      <button @click="moreFun(index)">展示更多</button>
     </div>
    </template>
   </ul>
  </div>
 </div>
</template>
<script>
export default {
 name: 'app',
 data() {
  return {
   list: [{
    name: '小颖'
   }, {
    name: '仔仔'
   }, {
    name: '黑妞'
   }, {
    name: '土豆'
   }]
  }
 },
 methods: {
  moreFun(index) {
   console.log(this.list);
  }
 }
}
</script>
<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-align: center;
 color: #2c3e50;
 margin-top: 60px;
}
</style>

一齐头小颖并不知道如何做,而且小颖以为               

 <div v-show="!v.showMore">
      <button @click="moreFun(index)">展示更多</button>
     </div>

这段代码肯定会报错,可是当小颖写上后发觉,并未,后来那位帅锅告诉笔者,看看vue的  vm.$set     小颖看后将moreFun方法写为:

 moreFun(index) {
   this.$set(this.list[index], 'showMore', true);
   console.log(this.list);
  }

然后就直达小颖想要的结果啦。小颖当时高出的主题素材类似于那样的:

<template>
 <div id="app">
  <div class="demo">
   <ul>
    <template v-for="(v,index) in list">
     <li>{{v.name}}</li>
     <div v-show="!v.showMore">
      <button @click="moreFun(index)">展示更多</button>
     </div>
    </template>
   </ul>
  </div>
 </div>
</template>
<script>
export default {
 name: 'app',
 data() {
  return {
   list: [{
    name: '小颖'
   }, {
    name: '仔仔'
   }, {
    name: '黑妞'
   }, {
    name: '土豆'
   }]
  }
 },
 mounted: function() {
  this.list.forEach(function(element, index) {
   element.showMore = false;
  });
 },
 methods: {
  moreFun(index) {
   this.list[index].showMore = true;
   console.log(this.list);
  }
 }
}
</script>
<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-align: center;
 color: #2c3e50;
 margin-top: 60px;
}
</style>

题材:当试行完moreFun方法后,就算list中的showMore属性的值形成了true,但是

<div v-show="!v.showMore"> <button @click="moreFun(index)">展示更多</button> </div>

开关 显示更加多  仍旧显示着,那是因为,假若在实例创立之后增多新的品质到实例上,它不会触发视图更新。

从而后来小颖就将showMore直接助长到list中,然后就好啊。未来心想实在用个vm.$set就减轻啦。

2.vm.$watch

用法:

入眼 Vue 实例变化的二个表明式或计算属性函数。回调函数获得的参数为新值和旧值。表明式只接受监督的键路线。对于更复杂的表明式,用1个函数代替。

在意:在变异 (不是替换) 对象或数组时,旧值将与新值一样,因为它们的引用指向同三个目的/数组。Vue 不会保留变异从前值的别本。

<template>
 <div id="app">
  <div class="demo">
   <input type="text" class="num1" v-model="num1">
   <label class="sign">-</label>
   <input type="text" class="num2" v-model="num2">
   <label class="sign">=</label>
   <label class="result">{{resultNum}}</label>
  </div>
 </div>
</template>
<script>
export default {
 name: 'app',
 data() {
  return {
   num1: 1,
   num2: 5,
   resultNum: null
  }
 },
 watch: {
  num1: function() {
   var _num1 = parseInt(this.num1);
   var _num2 = parseInt(this.num2);
   this.resultNum = _num1 - _num2;
  },
  num2: function() {
   var _num1 = parseInt(this.num1);
   var _num2 = parseInt(this.num2);
   this.resultNum = _num1 - _num2;
  }
 },
 mounted: function() {
  var _num1 = parseInt(this.num1);
  var _num2 = parseInt(this.num2);
  this.resultNum = _num1 - _num2;
 }
}
</script>
<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-align: center;
 color: #2c3e50;
 margin-top: 60px;
}
input.num1,
input.num2 {
 width: 100px;
}
label.sign {
 font-size: 30px;
 vertical-align: -3px;
}
label.result {
 font-size: 20px;
}
</style>

3.vm.$delete

 用法:

实例方法和数量,vue实例方法。那是全局 Vue.delete 的外号。

<template>
 <div id="app">
  <div class="demo">
   <ul>
    <template v-for="(v,index) in list">
     <li>{{v.name}}</li>
     <li>{{v.age}}</li>
     <button @click="deleteFun(index)">delete</button>
    </template>
   </ul>
  </div>
 </div>
</template>
<script>
export default {
 name: 'app',
 data() {
  return {
   list: [{
    name: '小颖',
    age:22
   }, {
    name: '仔仔',
    age:1
   }, {
    name: '黑妞',
    age:1
   }, {
    name: '土豆',
    age:1
   }]
  }
 },
 methods: {
  deleteFun(index) {
   this.$delete(this.list[index], 'age');
  }
 }
}
</script>
<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-align: center;
 color: #2c3e50;
 margin-top: 60px;
}
</style>

总结

以上所述是作者给咱们介绍的vue 实例方法和数目,希望对我们享有扶助,就算大家有其余疑问请给本身留言,我会及时过来大家的。在此也特别多谢大家对帮客之家网址的支持!

实例方法和数据,详解vue实例数据 一.vm.$set 难点讲述: 怎么样在不通过轮回数据给list数据增进1个showMore属性,并且在moreFun中改动那些...

vue中的统计属性的利用和vue实例的方式言传身教,vue实例

本文介绍了vue总计属性的行使和vue实例的点子言传身教,分享给大家,具体如下:

测算属性

在模板中表明式极度便利,可是它们其实只用于轻松的操作。模板是为着描述视图的结构。在模板中放入太多的逻辑会让模板过重且难以维护。这正是为什么Vue.js 将绑定表明式限制为1个表明式。要是急需多于2个表达式的逻辑,应当使用总括属性。

vue 计算属性

当大家想要依照壹端业务代码的进行结果来回到属性的值,就足以选用总结属性computed了,

测算属性是三个有结果的函数,有get方法和set方法,get方法,必须有重返值必须有再次回到值

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

<body> 
<div id="box"> 
  a = >{{a}} 
  b = > {{b}} 
</div> 
</body> 
<script> 
  var vm = new Vue({ 
    el:'#box', 
    data:{ 
      a:1 
    }, 
    computed:{ 
      b:function () { 
        //业务代码 
        return this.a 1; 
      } 
    } 
  }); 
  /**这样直接改属性的值不行的,需要调用计算属性的set方法**/ 
  document.onclick = function(){ 
    vm.b = 3; 
  }; 
</script> 

测算属性的set/get方法:

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

<body> 
<div id="box"> 
  a = >{{a}} 
  b = > {{b}} 
</div> 
</body> 
<script> 
  var vm = new Vue({ 
    el:'#box', 
    data:{ 
      a:1 
    }, 
    computed:{ 
      b:{ 
        get:function () { 
          return this.a 1; 
        }, 
        set:function(val){ 
          this.a = val; 
        } 
      } 
    } 
  }); 
  /**这样直接改属性的值不行的,需要调用计算属性的set方法**/ 
  document.onclick = function(){ 
    vm.b = 3; 
    //默认调用计算属性的set方法 
  }; 
</script> 

vue实例的简练方法

vm 是开创的vue实例对象的名字

vm.$el  ->  正是因素

vm.$data  ->  就是data

vm.$mount ->  将vue对象挂载在节点目的上

举个例子:

var vm2 = new Vue({ 
    data:{}, 
    methods:{} 
  }).$mount('#box'); 

等同于:

var vm2 = new Vue({ 
    el:'#box', 
    data:{}, 
    methods:{} 
  }); 

vm.$options ->   获取自定义属性,自定义方法

vue实例能够自定义属性和措施,纵然供给调用就需求$options调用,比方如下:

var vm2 = new Vue({ 
   aa:'1',//自定义属性 
   show:function () { 
     alert(1); 
   }, 
   el:'#box', 
   data:{}, 
   methods:{} 
 }); 
 vm2.$options.show(); 
 console.log(vm2.$options.aa); 

vm.$destroy ->   销毁对象

vm.$log();  ->  查看今后多少的事态

以上便是本文的全体内容,希望对大家的就学抱有扶助,也期望我们多多匡助帮客之家。

本文介绍了vue总括属性的利用和vue实例的艺术言传身教,分享给大家,具体如下: 总结属...

近来做事中遇见三个标题,因为后台管理种类页面效果暂且并未有新的要求,就在想首页放怎么事物,最近本身想到的正是放个所谓的数独,为什么是所谓的数独,因为规则差别于规范的数独,只供给每1行每1列数字不雷同就能够了!那个实例也是依附vue的,代码分享给我们。给我们代码,并不是要让我们一贯拷贝代码,而是希望能让大家看做是2个练手的花色,或许学习到知识。要是我们认为作者何地写得不好,写错了,迎接提议,让大家调换思想,一同前行。

 

代码上传到github了:有须要的能够star一下!vue-demos

二.运营效果

图片 1

三.贯彻步骤

落实步骤,认为说得有一点绕,建议我们边写边看小说,那样不会懵。或许直接去看源码(sudoku),把源码看懂!这么些项目也不复杂!

三-1.备选数据和排版

排版的html css代码笔者非常的少说了,排版很简单,那么些相信都难不倒大家的。复杂一点的正是数据的交互!
下边开首首先步,把数独的数据先计划好,数据是何等,大家都知晓,正是像上面那样的数目!

图片 2

排版出来的功能便是上边那样。

图片 3

html代码如下

<div class="num-table" @mouseleave="hoverCol=''" :class="{'shake':isShake}">
 <!--遍历每一行-->
 <div v-for="row,index in allNum" class="num-row chearfix">
 <!--遍历行里面的每一列-->
 <div v-for="num1,indexSub in row" class="num-col">
  {{allNumText[index][indexSub]}}
 </div>
 </div>
</div>

代码也很简短,如下

mounted(){
 let arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
 let row = [], rowCol = 0;
 for (let i = 0, len = arr1.length; i < len; i  ) {
 row = Object.assign([], arr1);
 this.allNum.push(row);
 //删除第一个数字并记录下来
 rowCol = arr1.splice(0, 1)[0];
 //在最后面插入数字
 arr1.push(rowCol)
 }
}

我们也得以窥见,那么些数量,的每壹行和每一列的数字都以不雷同的!

3-2.打乱行

其后就是不管三7二10一打乱顺序了,打乱顺序这一个得保障3个前提,正是保险每壹行每一列的数字都不雷同。那样的话,作者用了3个轻巧狠毒的办法-以行依旧列为单位,举行打乱。例如,第三行和第一行进行岗位交互,第二列和第伍列进行岗位的置换。上面说下以行为单位的失调顺序!

行的失调,极粗略,就是不管三7二10一打乱数组而已!一行代码化解!

本文由韦德国际1946发布于韦德国际1946国际网址,转载请注明出处:实例方法和数量,vue实例方法

关键词: 伟德娱乐国际