前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue系统学习1-内部指令

vue系统学习1-内部指令

作者头像
杨肆月
发布2019-08-15 18:39:35
5470
发布2019-08-15 18:39:35
举报
文章被收录于专栏:全栈开发之路全栈开发之路
1、v-if与v-show区别

v-if: 按需加载dom,可以减轻服务器的压力。 v-show:dom已加载好,调整css dispaly属性,可以使客户端操作更加流畅。


2、v-for循环 排序

在computed里新声明了一个对象sortItems,如果不重新声明会污染原来的数据源,这是Vue不允许的,所以你要重新声明一个对象

1)普通数组排序
代码语言:javascript
复制
<ul>
    <li v-for="item in sortItems">{{item}}</li>
</ul>

new Vue({
    el: '#app',
    data: {
        items: [54, 32, 12, 23, 11, 45, 2]
    },
    computed: {
        sortItems() {
            return this.items.sort()
        }
    },
    methods: {
        sortNumber(a,b) {
             return a-b;//升序,b-a为降序
        }
    }
})
=>js的sort()原理

http://imweb.io/topic/565cf7253ad940357eb99881 https://hufangyun.com/2017/sort-array/ sort的内部实现 源码https://github.com/v8/v8/blob/master/src/js/array.js#L1653

Google Chrome 对 sort 做了特殊处理 // In-place QuickSort algorithm. // For short (length <= 10) arrays, insertion sort is used for efficiency. 对于长度 <= 10 的数组使用的是插入排序(稳定排序算法) ,>10 的数组使用的是快速排序。快速排序是不稳定的排序算法。

插入排序算法: 例子:

代码语言:javascript
复制
5, 8, 3, 6, 9, 2, 1
[5, 8], 3, 6, 9, 2, 1
[3, 5, 8], 6, 9, 2, 1
[3, 5, 6, 8], 9, 2, 1
[3, 5, 6, 8, 9], 2, 1
[2, 3, 5, 6, 8, 9], 1
[1, 2, 3, 5, 6, 8, 9]
2)对象数组(根据某个属性)排序
代码语言:javascript
复制
<ul>
    <li v-for="item in sortStudents">{{item}}</li>
</ul>

new Vue({
    el: '#app',
    data: {
           students: [{name:'jspang',age:32},{name:'Panda',age:30},{name:'PanPaN',age:21},{name:'King',age:45}]
    },
    computed: {
        sortStudens() {
            return this.items.sort()
        }
    },
    methods: {
        sortNumber(a,b) {
             return a-b;//升序,b-a为降序
        }
    }
})

3、v-text和v-html

常规用{{}} 与 用v-text=“” 都能输出data值 v-text解决的问题:当我们网速很慢或者javascript出错时,会暴露我们的{{xxx}}

v-html可以输出html标签,但是需要注意的是:在生产环境中动态渲染HTML是非常危险的,因为容易导致XSS攻击。所以只能在可信的内容上使用v-html,永远不要在用户提交和可操作的网页上使用。


4、v-on也可以写成@

5、v-model ※※※

双向数据绑定,通常都是运用在表单组件中

修饰符:

.lazy 在change时而非input时再更新数据 .number 自动将用户的输入值转为数值类型(文本框的数字会默认转变成字符串) .trim 去掉用户输入的首尾空格

可以用在input(text、checkbox、radio)、textarea上

1)用在input(type="checkbox")上
代码语言:javascript
复制
//html
<input type="checkbox" id="cat" value="cat" v-model="animals">
<label for="cat">cat</label>
<input type="checkbox" id="dog" value="dog" v-model="animals">
<label for="dog">dog</label>
<input type="checkbox" id="fish" value="fish" v-model="animals">
<label for="fish">fish</label>
<input type="checkbox" id="bird" value="bird" v-model="animals">
<label for="bird">bird</label>

<p>{{animals}}</p> 
(显示所有选中的value)

//js
data: {
    animals: []
}
2)用在input(type="radio")上
代码语言:javascript
复制
//html
<input type="radio" id="cat" value="cat" v-model="animals">
<label for="cat">cat</label>
<input type="radio" id="dog" value="dog" v-model="animals">
<label for="dog">dog</label>
<input type="radio" id="fish" value="fish" v-model="animals">
<label for="fish">fish</label>
<input type="radio" id="bird" value="bird" v-model="animals">
<label for="bird">bird</label>

<p>{{animals}}</p> 
(显示单个选中的value)

//js
data: {
    animals: ''
}

6、v-bind 简写成:

绑定 html标签属性值:比如img的src、a的href css属性值 1)直接绑定class

:class="className" :class="[className1,className2]"

2)条件绑定class

简单判断 :class="{className: isTrue}" 三元运算符 :class="isTrue?className1:className2"

3)直接绑定style

:style="{color:red}"

4)用对象绑定

:style="styleObj" data: { styleObj: {color:red} }


7、v-pre & v-cloak & v-once
v-pre

<div v-pre>{{msg}}</div> 直接显示{{msg}}

v-cloak

在vue渲染完指定dom后才显示

[v-cloak] { display: none; } <div v-cloak> {{ message }} </div>

v-once

在第一次DOM时进行渲染,渲染完成后视为静态内容,跳出以后的渲染过程。

<div v-once>第一次绑定的值:{{message}}</div> <div><input type="text" v-model="message"></div>

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、v-if与v-show区别
  • 2、v-for循环 排序
  • 1)普通数组排序
    • =>js的sort()原理
    • 2)对象数组(根据某个属性)排序
    • 3、v-text和v-html
    • 4、v-on也可以写成@
    • 5、v-model ※※※
      • 修饰符:
        • 1)用在input(type="checkbox")上
          • 2)用在input(type="radio")上
          • 6、v-bind 简写成:
          • 7、v-pre & v-cloak & v-once
            • v-pre
              • v-cloak
                • v-once
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档