day53 es6 和 vue

三、ES5和6的一些新特性

1、let 和 const 命令

let:定义局部变量

const:定义常量

 

2、结构表达式

数组解构

let arr =[2,5,-10,-15];

let [x,y] =arr -------------> x=2 , y=5

let [,,a,b] =arr -------------> a=-10 ,b =-15

let [,...rest] --------> 第一个不要 取剩下的,放在rest中

 

对象解构

let p ={name:"jack",age:21};

let {name,age} =p -----------------> name:jack age :21

 

取别名

let {name:n } = p -------------> n:jack

 

解析复杂对象

p= {name:"jack" ,age :21,girl:{name:"rose",age:20}}

let {girl:{name}} =p -------> name: rose

 

let {...obj} =p 将整个对象p赋值给obj

对象的深层拷贝,对象地址 其实是不一样的

 

3、函数优化

箭头函数:

const add = (a,b)=> a+b;

 

对象中函数的优化

const p={

name:"jack",

age:21,

sayHello(){

xxxxxxxx

}

}

 

函数中可以用 结构表达式

const hello = function({name,age}){

console.info(name, age);

}

 

函数结合 结构表达式 和 箭头函数

const hello = ({name,age}) => console.info(name, age);

 

 

4、map 和 reduce

map:把一个集合中的元素逐个处理

let arr=['2' ,'5','-10','-15','-20']

let arr = arr.map(s=> parseInt(s));

 

reduce():接收一个函数(必须)和一个初始值(可选)

 

 

四、vue

1、 命令

node -v 查看node的版本

npm -v 查看npm的版本

npm install nrm -g 全局安装切换镜像的工具

nrm ls 命令查看npm的仓库列表,带*的就是当前选中的镜像仓库

nrm use xxx 来指定要使用的镜像源

nrm test npm 测试速度

 

=====

在项目中:

npm init -y 项目初始化

npm install vue --save 本地安装vue(意思是只针对于该项目)

 

 

2、vue 入门

<div id="app">

<button @click="handleClick">点我</button>

<input type="text" v-model="num"><button @click="num++">+</button>

<h1>

{{name}} 非常帅<br>

有{{num}}位女生为其沉沦!!!!

</h1>

</div>

<script src="node_modules/vue/dist/vue.js"></script>

<script>

const app =new Vue({

el:"#app", //element,vue作用的标签

data:{

name:"",

num:1

},

methods:{ // 方法

handleClick:function(){ //简化的函数写法

console.log("hello,高燕,你真的特别好看!!")

}

},

created:function(){ // 生命周期钩子函数

// 向后台发起请求 ,完成对Data数据的初始化

this.name="高燕"

}

 

})

</script>

 

v-model :视图和模型的双向绑定

@click : 点击事件

 

 

4、vue 的生命周期钩子函数

created:function(){ // 生命周期钩子函数

// 向后台发起请求 ,完成对Data数据的初始化

this.name="高燕"

}

 

5、vue 指令

1){{}} 插值表达式

问题:会出现插值闪烁

 

2、v-text 和 v-html

区别:v-html 可以渲染标签

 

3、v-model: 双向绑定

<div id="app">

<button @click="handleClick">点我</button>

<input type="text" v-model="num"><button @click="num++">+</button>

<h1>

{{name}} 非常帅<br>

有{{num}}位女生为其沉沦!!!!

</h1>

<hr>

<input type="checkbox" v-model="lessons" value="Java" />Java<br/>

<input type="checkbox" v-model="lessons" value="PHP" />PHP<br/>

<input type="checkbox" v-model="lessons" value="Swift" />Swift<br/>

<h1>

你选择了:{{lessons.join(',')}}

</h1>

</div>

<script src="node_modules/vue/dist/vue.js"></script>

<script>

const app =new Vue({

el:"#app", //element,vue作用的标签

data:{

name:"",

num:1,

lessons:[]

},

methods:{

handleClick:function(){ //简化的函数写法

console.log("hello,高燕,你真的特别好看!!")

}

},

created:function(){

// 向后台发起请求 ,完成对Data数据的初始化

this.name="高燕"

}

 

})

</script>

 

4、v-on

@click.stop :阻止事件冒泡

.prevent :阻止默认事件

.self : 只有自身元素才能触发

 

5、v-for

// 数组的遍历

<ul>

<li v-for="(user, index) in users">

{{index + 1}}. {{user.name}} - {{user.gender}} - {{user.age}}

</li>

</ul>

// 对象的遍历

<ul>

<li v-for="(v,k,i) in users[0]"> <!-- v:值 k:键 i:索引 -->

{{i}} -- {{k}} :{{v}}

</li>

</ul>

 

 

6、v-if 和 v-show

区别:

v-if : 直接干掉 该元素

v-show : 通过display属性来控制

 

7、v-bind

插值表达式不能使用在属性上

v-bind:class ="color" 或者 :class ="color"

 

将class 定义成一个变量

 

 

8、计算属性 本质上是一个方法,对属性进行运算必须要有返回值

// 只在 vue 初始化是运算了一次

computed:{

birth(){

// 对属性操作的方法

}

}

 

=====36

 

猜你喜欢

转载自www.cnblogs.com/houchen/p/12203775.html