# vue
**Repository Path**: hackjiyi/vue
## Basic Information
- **Project Name**: vue
- **Description**: No description available
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-07-01
- **Last Updated**: 2021-09-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# svue知识点
## 模板语法
- 双向绑定(view到data, data到view)
- [ ] DOM监听
DOM原始变化监听修改data中的值
- [ ] 数据绑定
data中值变化绑定的view也跟着变化

- 双大括号表达式
```vue
{{var_name}}等价v-text或者v-html
```
- 强制数据绑定
```vue
# v-bind: 或者 :
```
- 绑定事件监听
```vue
#v-on:事件名="方法名" 或 @事件名="方法名"
methods: {
test: function (msg) {
alert(msg);
}
}
```
## 计算属性和监视
- 计算属性
- [ ] 说明
一个属性自己本身或者其他属性且需要进行加工或者计算的都应该用计算属性, 它在初始化和依赖属性值发生变化时调用,属性不需要在data定义, 该属性具有缓存的效果
- [ ] 示例
```vue
// 单向
computed: {
fullname1 () {
return this.firName + ' ' + this.lastName;
}
}
// 双向(fullname1改变了也要改变firName和lastName)
computed: {
fullname1: {
get() {
return this.firName + ' ' + this.lastName;
},
set(value) {
let names = value.split(' ');
this.firname = names[0];
this.lastName = names[1];
}
}
}
```
- 监视
- [ ] 说明
指定要监听的属性,属性改变的时候将该属性的监视方法, 且将改变前和改变后的值传入回调方法方法, 属性名必须在data提前定义
- [ ] 示例
```
watch: {
firstName: function(newValue, oldValue) {
this.fullName = newValue + ' ' + this.lastName;
},
lastName: function(newValue, oldValue) {
this.fullName = this.lastName + ' ' + newValue;
}
}
```
## class与style绑定
- class
- [ ] 说明
使用:class绑定class, 值可以为字符串、对象、数组
- [ ] 示例
```vue
测试的文字
测试的文字
测试的文字
测试的文字
测试的文字
测试的文字
测试的文字
测试的文字
结果1 结果2
data: { result: 2, } ``` - v-show - [ ] 说明 是否显示,display: none - [ ] 示例结果1 结果2
结果1 结果2
data: { result1: 0, } ## 列表渲染 - v-for数组 - [ ] 说明 以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 `key` attribute vue重写了数组的方法, 让他数据项变化的时候重新渲染页面数据, 例如persons[index] = updatePersons是不更新页面的; - `push()` - `pop()` - `shift()` - `unshift()` - `splice()` - `sort()` - `reverse()` 替换数组, 以下函数总会返回一个新的数组地址,不会变更原始数组 - `filter()` - `concat()` - slice() - [ ] 示例 ```vue{{item.id}} ----------- {{item.name}} ----------- {{item.age}}
data: { persons: [ {id: 1, name: 'jack', age: 19}, {id: 2, name: 'pert', age: 21}, {id: 3, name: 'jams', age: 28}, {id: 4, name: 'krly', age: 30} ] } ``` - v-for对象 - [ ] 说明 在遍历对象时,会按 `Object.keys()` 的结果遍历,但是**不能**保证它的结果在不同的 JavaScript 引擎下都一致 - [ ] 示例 ```vuemethods: { test1: function() { alert('1111'); }, test2: function(event) { alert(event.target.nodeName); }, test3: function(event) { alert(event.target.nodeName); }, test4: function(name, event) { alert(event.target.nodeName); } } ``` - 事件修饰符 - [ ] 说明 默认情况下, 内部的事件也会触发外部事件, 事件冒泡机制, 使用@事件名.stop终止事件冒泡, 使用@事件名.prevent终止事件的默认行为 - [ ] 示例 ```vue methods: { test1: function() { alert('out'); }, test2: function() { alert('inner'); }, test3: function() { alert('test3'); } } ``` - 按键修饰符 - [ ] 说明 @keyup和@keydown可以通过.keyCode实现对某个特点键的监听 - [ ] 示例 ```vue methods: { test: function (event) { alert(event.target.value); } } ``` ## 表单输入绑定 - 表单数据自动收集 - [ ] 说明 使用v-model实现数据双向绑定 - [ ] 示例 ```vue data: { formData: { userName: '', pwd: '', sex: '男', likes: [], cityId: 0, remark: '' }, allCitys: [ {id: 1, text: "北京"}, {id: 2, text: "上海"}, {id: 3, text: "深圳"} ], }, methods: { submitHandle: function() { console.log(this.formData); } } ``` ## Vue实例_生命周期 - 说明 Vue的生命周期分为三个阶段初始化(created、beforeMount、mounted)、更新(beforeUpdate、updated)、销毁(beforeDestroy、destroyed)  ## 过滤&动画 - 过渡 - [ ] 示例 ```vue
hello
Lorem ipsum dolor sit amet
时间: {{date}}
完整版{{date | dataString}}
年月日{{date | dataString('YYYY-MM-DD')}}
时分秒{{date | dataString('HH:mm:ss')}}