Vue2基础(二)

1、 reduce方法

​ reduce方法的使用(数组方法): 遍历数组,求和

​ 语法:数组名.reduce((pre,current) => {},参数2)

​ pre:上次执行该方法的返回值

​ current:数据项

​ 参数2:pre的初始值

		let ret = arr.reduce((pre,current) => {
            // 这里的pre相当于前面所有数据项的和
            return pre + current.price * current.count
        },0)
        console.log(ret);
2、 Vue的计算属性

存放属性(以函数的形式)

当一个值受其他值影响的时候,就会将这个值写在计算属性当中

有效缓存效果:只执行一次

	        // 写法一		
			computed:{
                    total(){
                        let ret = this.arr.reduce((pre,cur) => {
                            return pre + cur.price * cur.count
                        },0)
                        return '总价格:¥' + ret.toFixed(2) + '元'
                    }
            },
           // 写法二     
           computed:{
                    total:{
                        get(){
                            // total在页面中使用了就会执行get中的代码
                            console.log('执行了get方法');
                            return 100;
                        },
                        set(){
                            // 计算属性的值修改时会执行此处代码
                            console.log('执行了set方法');
                        }
                    }
                },          
3、 toFixed方法

toFixed(n)保留n位小数

ret.toFixed(2)
4、 v-model原理

​ 1、修改了文本框的value属性值

​ 2、绑定了输入事件 input

​ 3、用value和input事件来实现数据的双向绑定

​ v-model的本质就是利用: value属性+@input事件完成的

​ 将用户输入的内容赋值给变量

        <div id='app'>		
        <input type="text" v-model="txtVal">
        <!-- <input type="text" :value="txtVal" @input="myInput"> -->
        <!-- 简写形式  e = $event -->
        <input type="text" :value="txtVal" @input="txtVal = $event.target.value">
        <p>{{txtVal}}</p>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                txtVal:''
            },
            methods: {
                // myInput(e){
                //     /* 
                //         将输入的内容获取并打印
                //         将用户输入的内容赋值给txtVal即可
                //     */
                //     this.txtVal = e.target.value
                // }
            }
        })
    </script>
5、 数组常用方法

​ push(): 在数组末尾添加新的数据项

​ pop(): 删除数组中的最后数据项

​ unshift(): 在数组的前面添加数据项

​ shift(): 在数组的最前面删除数据项

​ concat(): 数组合并的(数据项)

​ reverse(): 数据项反转

map() 数组遍历

splice(要删除的索引,删除的个数,替换的数据项): 用来操作数组

filter筛选

​ 语法:数组名.filter(函数 (形参1,形参2,形参3){

​ 形参1:数据项(item)

​ 形参2:索引(index)

​ 形参3:数组本身(slef)

​ })

6、 数组去重

1、ES6的方式

​ new Set(参数)

​ console.log([…new Set(arr)]);

​ console.log(Array.from(new Set(arr)));

2、传统的去重(循环)

​ 1> 重新定义一个空数组

​ 2> 某项数据不在新数组中,则添加

​ 3> 打印新数组

​ 数组名.indexOf(数据项) == -1

​ !数组名.includes(数据项)

3、filter方法去重

​ 思想:将自己本身的索引和首次出现的索引比较,相等则返回

 		var arr = [1, 2, 12, 54, 12, 1, 2, 2]
        // 方式一
        console.log(new Set(arr));
        console.log([...new Set(arr)]);
        console.log(Array.from(new Set(arr)));
        // 方式二
        let ret = arr.filter((item, index, self) => {
            return self.indexOf(item) === index
        })
        console.log(ret);
        // 方式三
        let newArr = []
        for (var i = 0; i < arr.length; i++) {
            /*  if(newArr.indexOf(arr[i]) == -1){
                 newArr.push(arr[i])
             } */
            if (!newArr.includes(arr[i])) {
                newArr.push(arr[i])
            }
        }
        console.log(newArr);
7、 计算字符出现次数
		var str = "qwertyuioqwertyuiisdfghjxcvbnmdfghjkkkkkkkkksdfghj"
        // 方法一
        var arr = str.split('')
        let ret = arr.reduce((pre, cur) => {
            pre[cur] ? pre[cur]++ : pre[cur] = 1
            return pre
        }, {})
        console.log(ret);
        // 方法二
        var obj = {}
        for(var i = 0;i<str.length;i++){
            if(obj[str[i]]){
                obj[str[i]]++
            } else {
                obj[str[i]] = 1
            }
        }
        console.log(obj);
8、 其他不常用指令

​ v-text:展示内容,不解析标签

​ v-html:展示内容,可解析标签

​ v-pre :让插值表达式失效

​ v-cloak:解决当网络加载很慢时,或者频繁渲染时候,页面就会显示出源代码

		<p v-text="str"></p>
        <p v-html="str"></p>
        <p><span v-pre>{{num}}</span>的值是:{{num}}</p>
        <p v-cloak>{{num}}</p>
9、 添加VSCode模板

​ 1、文件 -> 首选项 -> 用户代码片段

​ 2、在输入框内输入html.json

​ 3、用下面的代码覆盖掉原来的

​ 使用:新建html文件直接输入hv,然后按下回车即可

"html:5": {
		"prefix": "hv",
		"body": [
			"<!DOCTYPE html>",
			"<html>",
			"<head>",
			"\t<meta charset=\"UTF-8\">",
			"\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
			"\t<meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">",
			"\t<title></title>",
			"\t<script src=\"https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js\"></script>",
			"</head>",
			"<body>",
			"\t<div id='app'>",
			"\t</div>",
			"\t<script>",
			"\t\tnew Vue({",
			"\t\t\tel:'#app',",
			"\t\t\tdata:{},",
			"\t\t\tmethods:{}",
			"\t\t})",
			"\t</script>",
			"</body>",
			"</html>",
		],
		"description": "HTML5"
	}

文章内容可能会有一点乱,仅记录今日所学知识点,大家酌情看哦~

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值