Vue-04-xiaoming

2018-09-17

今天好像觉得是有点碌碌无为的一天,怎么说呢,还是踏踏实实的努力吧!=》》QAQ小明!!!

今天呢,学习了过滤器,官方给我们的解释是:Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。但是通俗地 来说,就是让要显示在页面上的内容进行重新筛选
过滤器又分为两种:全局过滤器和局部过滤器。

①局部过滤器:
new Vue({
        el:'',
        data:{}
        methods:{},
        filters:{
           过滤器名:function(data){
        
            }
    })
②全局过滤器:
 <p>{{msg|过滤器的名字}}</p>
    new Vue({
    })
 Vue.filter('过滤器的名字',function(){
    
    }

QAQ:复习Js中的获取当前日期;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

<h1></h1>
<script>
    //toFixed(3)
//    
    
    var date=new Date();
    console.log(date);
    
    //年
    var year=date.getFullYear();
    //月
    var mon=date.getMonth()+1;
    //日
    var tian=date.getDate();
    //星期
    var day=date.getDay();
    //小时
    var hours=date.getHours();
    //分钟
    var min=date.getMinutes();
    //秒
    var sec=date.getSeconds();
    console.log(sec)
    
   document.querySelector('h1').innerHTML='现在时间是'+year+'年'+mon+'
   月'+tian+'日,星期'+day+','+hours+'点'+min+'分'+sec+'秒'; 
    
</script>
</body>
</html>
效果图:
date01.png

QAQ:数组的切割,翻转,拼接。=》》

var str = 'hello vue'
            var strs = str.split(' '); //切割
            console.log(strs);
            var str1 = strs.reverse(); //翻转  
            console.log(str1);
            var str2 = str1.join('==='); //拼接
            console.log(str2);
数组API.png

QAQ:温故而知新,“数组的API”:

~将数组转化成字符串=》》

1.Stiring();

eg:var str=String(str);   

 //将数组转化为字符串并分隔每个元素;
QAQ: 注:不改变原数组

2.join();
var str=arr.join("自定义分隔符"); 将数组转化为字符串,可定义分隔符强调:如果join省略"",就等效于String。

eg:var arr=[1,2,3];
arr.join('')//"123"

var arr=[1,2,3];
arr.join(' ')//"1 2 3"

var arr=[1,2,3];
arr.join(',')//"1,2,3"
arr//[1, 2, 3]
QAQ:注:不改变原数组

~链接和获取子数组

1.concat();
连接: var newArr=arr1.concat(值1,值2,arr2,...);将concat后的内容,和arr1拼接,组成新数组返回。
强调:concat的参数中包含数组,则打散数组,以单个元素拼接。

eg;var arr1=[1,2,3],arr2=[4,5,6]
arr1.concat(1,2)//[1, 2, 3, 1, 2]

var arr1=[1,2,3],arr2=[4,5,6]
arr1.concat(arr2)//[1, 2, 3, 4, 5, 6]

2.slice();
获取子数组:var subArr=arr.slice(starti,endi+1);
获得arr中starti位置开始,到endi位置的所有元素组成的新数组。
强调:含头不含尾
省略第二个参数:表示从starti一直取到结尾。
可支持负数参数:-n表示倒数第n个元素,相当于length-n。

eg:var arr=[1,2,3,4]

arr.slice(0)//[1, 2, 3, 4]

arr.slice(0,2)//[1, 2]

arr.slice(-3)//[2, 3, 4]

arr.slice(-3,-1)//[2, 3]

arr.slice(0,2)//[1, 2]

arr//[1, 2, 3, 4]
QAQ:注:不改变原数组

叁:

~删除,插入,替换:(直接修改原数组)。

1、删除:var deletes=arr.splice(starti,n);删除arr中starti位置开始的n个元素。返回被删除的元素组成的临时新数组。

eg:var arr=[1,2,3,4]
arr.splice(0)//[1, 2, 3, 4]

var arr=[1,2,3,4]
arr.splice(-1)//[4]

var arr=[1,2,3,4]
arr.splice(0,3)//[1, 2, 3]
arr//[4]
QAQ:注:1.支持负数。2.直接修改原数组

2、插入:arr.splice(starti,0,值1,值2,...);
在arr中starti位置,插入新值。旧值被向后顺移。
强调

1.要插入的值,只能以单独的参数传入,不支持打散数组参数
  2.starti表示第i个 不是数组索引

eg:var arr=[1,2,3,4]
arr.splice(2,0,22,33)
arr//[1, 2, 22, 33, 3, 4]

3、替换:var deletes=arr.splice(starti,n,值1,值2,...);
删除arr中starti位置开始的n个元素,再在starti位置插入新元素。
删除的元素个数和插入的新元素个数不必相等。

eg:var arr=[1,2,3,4]
arr.splice(2,2,5,6)
arr//[1, 2, 5, 6]

4、反转数组元素:arr.reverse();

eg:arr=[1,2,3,4]
arr.reverse()//[4, 3, 2, 1]
arr//[4, 3, 2, 1]

注:直接修改原数组
5、升序排列:arr.sort(); (直接修改原数组)。

eg:arr=[1,5,3,2]
arr.sort()//[1, 2, 3, 5]

arr=[1,5,32,2]
arr.sort()//[1, 2, 32, 5]
arr//[1, 2, 32, 5]

注:1.将arr中的元素,以字符串方式升序,如上

2.sort()支持自定义排序方法(arrayObject.sort(sortby)),这个以后再说啦~

~结尾出入栈:

1、入栈:arr.push(值);将值压入数组结尾。

eg:var arr=[1,2,3,4]
arr2=arr.push(1)//5
//返回新数组的长度
arr//[1, 2, 3, 4, 1]

2、出栈:var last=arr.pop(); 弹出数组最后一个元素。

eg:var arr=[1,2,3,4]
arr.pop()//4
//返回弹出的元素
arr//[1,2,3]
QAQ:注:直接修改原数组

~开头出入栈:
1、入栈:arr.unshift(值);
将值插入数组开头。
2、出栈:var first=arr.shift();
取出数组第一个元素。

var arr=[1,2,3,4]
arr.unshift(22)//5
arr//[22, 1, 2, 3, 4]

var arr=[1,2,3,4]
arr.shift()//1
arr//[2, 3, 4]  
QAQ:注:直接修改原数组

QAQ:总结:

直接修改原数组

1.arr.splice();

2.arr.reverse();

3.arr.sort();

4.arr.push(值);arr.pop();

5.arr.unshift(值);arr.shift();

不修改原数组

1.String(arr);

2.arr.join("自定义分隔符");

3.arr1.concat(值1,值2,arr2,...);

4.arr.slice(starti,endi+1);

小实例:

①保留小数(两位)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div id='itany'>
       <p>{{123.41233|number}}</p>
   </div>
    <script src='js/vue.js'></script>
    <script>
//       Vue.filter("number",function(data){
//           return data.toFixed(2)
//       }) 
       new Vue({
            el:'#itany',
            filters:{
                number:function(data){
                    return data.toFixed(2)
                }
            }
       })
    </script>
</body>
</html>

获取当前日期:与上面Js的对比=》》

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
  <div id='itany'>
      <p>{{new Date()|date}}</p>
  </div>
   <script src='js/vue.js'></script> 
   <script>
     Vue.filter("date",function(data){
         return  data.getFullYear()+'年'+(data.getMonth()+1)+'月'+data.getDate()+'日,星期'+data.getDay()+','+data.getHours()+'点'+data.getMinutes()+'分'+data.getSeconds()+'秒';
     })  
     new Vue({
         el:'#itany'  
     })
   </script>
</body>
</html>
效果图:
date02.png

③小于10,十位补位 0:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div id='itany'>
       <p>{{2|addZero}}</p>  
   </div>
    <script src='js/vue.js'></script>
    <script>
       Vue.filter('addZero',function(data){
           if(data<10){
               return '0'+data;
           }else{
               return data;
           }
       }) 
       new Vue({
           el:'#itany'
       })
    
    </script>
</body>
</html>

④计算属性1

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div id='itany'>
       <h1>{{msg.split(' ').reverse().join('===')}}</h1>
       <a href="#">{{count}}</a>
   </div>
    <script src='js/vue.js'></script>
    <script>
    
       new Vue({
           el:'#itany',
           data:{
               msg:'hello vue'
           },
           computed:{//计算属性
               count:function(){
                   return this.msg.split(' ').reverse().join('===')
               }
           }
       })
    </script>
</body>
</html>
效果图:
计算属性1.png

⑤计算属性2

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
  <div id='itany'>
     <button @click='add'>加货</button>
      <h1>{{total}}</h1>
  </div>
   <script src='js/vue.js'></script> 
   <script>
    
       new Vue({
           el:'#itany',
           data:{
               package1:{price:2,count:3},
               package2:{price:4,count:6}
           },
           computed:{
               total:function(){
                   return this.package1.price*this.package1.count+this.package2.price*this.package2.count
               }
           },
           methods:{
               add:function(){
                   this.package1.count++;
               }
           }
           
       })
    </script>
</body>
</html>
效果图:
add01.png
add02.png
add03.png

=》》》》》》今天呢,就学到这,seegoodbye~~~

=>>>>>>>明天见
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容