标签:页面 简单的 getc 数字类型 hold shift 算法 pop 按钮
```js
//push方法:追加
this.letters.push('aaa')
//pop(): 删除数组中的最后一个元素
this.letters.pop();
//shift(): 删除数组中的第一个元素
this.letters.shift();
//unshift(): 在数组最前面添加元素
this.letters.unshift('aaa', 'bbb', 'ccc')
//splice作用: 删除元素/插入元素/替换元素
//删除元素: 第二个参数传入你要删除几个元素(如果没有传,就删除后面所有的元素)
//替换元素: 第二个参数, 表示我们要替换几个元素, 后面是用于替换前面的元素
//插入元素: 第二个参数, 传入0, 并且后面跟上要插入的元素
splice(start):
this.letters.splice(1,3)
this.letters.splice(1, 3, 'm', 'n', 'l', 'x')
this.letters.splice(1, 0, 'x', 'y', 'z')
//sort() 排序
this.letters.sort()
//reverse() 反转
this.letters.reverse()
```
Vue不会监听通过索引值修改数组中的元素:
this.letters[0] = 'bbbbbb'; //这样修改的元素不会被监听和响应
//那如何修改索引为0的元素呢?
方法一:this.letters.splice(0, 1, 'bbbbbb')
//set(要修改的对象, 索引值, 修改后的值)
方法二: Vue.set(this.letters, 0, 'bbbbbb')
string|HTMLElement
作用:决定之后Vue实例会管理哪个DOMobject|function(组件当中data必须是一个函数)
作用:Vue实例对应的数据对象{ [key:string]:function}
作用:定义属于Vue的一些方法,可以在其他地方调用,也可以在指令中使用<h2 v-once> {{message}} </h2>
url: '<a href="http://www.baidu.com">百度一下</a>'
<h2 v-html="url"></h2>
message:"小明"
<h2 v-pre>{{message}}</h2> //message
<p v-for="item in list">{{item.name}}-------{{item.age}} </p>
(遍历数组,如果in前面有两个参数,第二个参数代表索引)<p v-for="(val,key) in user">{{key}} ----- {{val}}</p>
(对象是无序的,所以应该用value-key的形式)<a v-bind:href="aHref">百度一下</a>
缩写<a :href="aHref">百度一下</a>
CSS代码:
.active {
color: red;
}
HTML代码:
<h2 class="title" v-bind:class="{active: isActive, line: isLine}">{{message}}</h2>
<h2 class="title" v-bind:class="getClasses()">{{message}}</h2>
JS代码(vue):
const app = new Vue({
el: '#app',
data: {
message: '你好啊',
isActive: true,
isLine: true
},
methods: {
btnClick: function () {
this.isActive = !this.isActive
},
getClasses: function () {
return {active: this.isActive, line: this.isLine}
}
}
})
HTML代码:
<h2 class="title" :class="[active, line]">{{message}}</h2>
<h2 class="title" :class="getClasses()">{{message}}</h2>
JS代码:
const app = new Vue({
el: '#app',
data: {
message: '你好啊',
active: 'aaaaaa',
line: 'bbbbbbb'
},
methods: {
getClasses: function () {
return [this.active, this.line]
}
}
})
js <h2 :style="{key(属性名): value(属性值)}">{{message}}</h2> // key:fontSize,font-size等属性名 value:属性如果不加字符串会被认定为变量(10px变量 "10px"属性值)
js HTML代码: <h2 :style="[baseStyle, baseStyle1]">{{message}}</h2> JS代码: const app = new Vue({ el: ‘#app‘, data: { message: ‘你好啊‘, baseStyle: {backgroundColor: ‘red‘}, baseStyle1: {fontSize: ‘100px‘}, } })
js //1.stop(阻止冒泡,调用了event.stopPropagation() <button @click.stop="btnClick">按钮</button> //2.prevent(阻止默认行为,调用了event.preventDefault() <input type="submit" value="提交" @click.prevent="submitClick"> //3.{keyCode|keyAlias}监听某个键盘的键帽 <input type="text" @keyup.enter="keyUp"> //键别名(enter回车) <input type="text" @keyup.13="keyUp"> //键代码 //4.点击回调只会触发一次 <button @click.once="btn2Click">按钮2</button> //5.串联修饰符 <button @click.stop.prevent="doThis"></button>
v-if,v-else-if,v-else的使用
<div id="app">
<span v-if="isUser">
<label for="username">用户账号</label>
<input type="text" id="username" placeholder="用户账号">
</span>
<span v-else>
<label for="email">用户邮箱</label>
<input type="text" id="email" placeholder="用户邮箱" >
</span>
<button @click="isUser = !isUser">切换类型</button>
</div>
const app = new Vue({
el: '#app',
data: {
isUser: true
}
})
问题:当我们在文本框中已经输入了内容在进行切换的时候,文本内容并不会被清空,而是会沿用切换前已有的文本,这是为什么?
原因:因为Vue在进行DOM渲染的时候,处于性能考虑,会尽可能复用已经存在的元素(input),而不是创建新元素,复用时有部分不同在进行替换(id,placeholder)
解决:如果不希望Vue出现类型重复利用的问题,可以给对应的input添加key并保证key的不同( 如:key="username",key="email")
v-show:和v-if的使用相似,但有些不同
```js
//v-if: 当条件为false时, 包含v-if指令的元素, 根本就不会存在dom中
//v-show: 当条件为false时, v-show只是给我们的元素添加一个行内样式: display: none
<h2 v-show="ture" id="bbb">{{message}}</h2>
```<input type="text" :value="message" @input="message = $event.target.value">
select:
```js
v-model修饰符:
```js
//1.修饰符: lazy
//作用:让数据失去焦点或者回车的时候才会更新
<input type="text" v-model.lazy="message">
//2.修饰符: number
//作用:让输入框中输入的内容自动转成数字类型
<input type="number" v-model.number="age">
//3.修饰符: trim
//作用:可以过滤内容左右两边的空格
<input type="text" v-model.trim="name">
```
computed: {
fullName: {
set: function(newValue) {
// console.log('-----', newValue);
const names = newValue.split(' ');
this.firstName = names[0];
this.lastName = names[1];
},
get: function () {
return this.firstName + ' ' + this.lastName
}
},
计算属性本质就 是对象属性,里面包含了setter和getter方法,但是我们通常不适用setter方法,让其成为只读属性,这样就有了另外一种缩写方式:
fullName: function () {
return this.firstName + ' ' + this.lastName
}
其实这样就是只调用某个计算属性中的get方法
标签:页面 简单的 getc 数字类型 hold shift 算法 pop 按钮
原文地址:https://www.cnblogs.com/JCDXH/p/11638442.html