我们学习一门知识,肯定是从这个知识是什么开始,由来,发展历程,以及该知识的基本语法来学习.

今天和大家介绍一下前端流行的框架vue!!!

Vue最早发布于2014年左右,作者是尤雨溪。Vue 的定位就是为前端开发提供一个低门槛,高效率,但同时又能够伴随用户成长的框架

总结来说:vue是一套用于构建用户界面渐进式的javascript框架.

渐进式的意思呢?就是随学随用.


那么vue该如何使用呢?

步骤如下:

// 4.在页面中添加dom元素,与vue控制的区域相匹配
<div id="app">
// 在vue中使用插值语法来渲染到页面中
<p>姓名:{{username}}</p>
<p>年龄:{{age}}</p>
</div>
// 1.引入vue.js文件,该文件有vue这个构造函数
<script src="vue.js"></script>
// 2.实例化vue对象
<script>
let vm = new Vue({
// 3.在配置选项中使用el选项,选择vue控制的区域
el:"#app",
data:{
username:"苏苏",
age:18
}
})
</script>

那么与vue想配套的指令有哪些呢?

在学习指令之前,我们了解一下{{}}这个插值表达式

插值表达式里面可以是数值,字符串,数组,对象,布尔以及方法或三元表达式


<div id="app">
<!-- 我是vue控制的区域 -->
我是num数据:{{num}}
</div>
<script src="./lib/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
num:1
}
})
</script>

指令是vue为开发者提供的一套特殊语法

运用vue指令可以减少我们对于dom的操作

vue指令按功能分可以分为6大类

内容渲染指令

属性绑定指令

事件绑定指令

双向绑定指令

列表渲染指令

条件渲染指令


  1. 内容渲染指令(v-html和{{}}插值表达式)

    内容渲染指令可以帮助开发者去渲染页面中的文本内容
    我们如果想要渲染html标签到页面中,就需要用v-html来实现

<div id="app">
<!-- 我是vue控制的区域 -->
我是num数据:{{num}}
<p v-html="str"></p>
</div>
<script src="./lib/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
num:1,
str:"<h3>我是v-html渲染出来的内容</h3>"
}
})
</script>

2.属性渲染指令

如果我们想给一个元素动态绑定一个属性,我们就可以使用v-bind来实现

<div id="app">
<input type="text" v-bind:placeholder='str'>
<!-- 简写形式 -->
<input type="tpassword" :placeholder="pwd">
</div>
<script src="./lib/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
str:'请输入账号'
}
})
</script>

3.事件渲染指令

我们给一个元素添加事件可以使用v-on指令 我们点击一个按钮,让num++ v-on:事件类型="事件执行函数" 我们也可以采用简写形式 @click='事件执行函数' 事件执行函数要写在vue实例的methods选项中


<div id="app">
num为:{{num}}
<button type="button" v-on:click="btn">+1操作</button>
</div>
<script src="./lib/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
num:0,
},
methods:{
btn(){
this.num++
}
}
})
</script>

事件修饰符

.prevent和.stop

.prevent是阻止默认行为的

.stop是阻止冒泡的

当我们点击a链接跳转时我们可以添加@click.prevent="事件执行函数"

当我们嵌套元素都使用了相同的事件,那么点击子事件会冒泡影响到父事件,为了解决这个问题我们可以添加@click.stop="事件执行啊函数"


4.双向绑定

vue双向绑定的特点其实就是,数据的改变会驱动视图的变化,视图的变化就影响到数据的变化

在vue中我们可以用v-model来双向绑定的

v-model只能绑定到表单元素身上

双向绑定的修饰符

.number和.trim还有.lazy

.number自动将用户输入的值变为数值类型

.trim是自动清除用户输入的首位空格

.lazy是让 v-model 绑定的值,在“change”时更新,而非 “input”时更新


<div id="app">
<input type="text" v-model="username">
</div>
<script src="./lib/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
username:''
}
})
</script>

5.条件渲染指令

条件渲染指令v-if和v-show

他们是用来做显示和隐藏功能的

v-if是删除dom节点,用于小量的切换

v-show是添加display为none来实现显示和隐藏的,用于大量的切换

v-if有配套v-else和v-else-if等

<div id="app">
<button @click="qiehuan">点击</button>
<p v-if="flag">这是v-if</p>
<p v-show="flag"></p>
<input type="checkbox" v-model="flag">
</div>
<script src="./lib/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
flag:false
},
methods:{
qiehuan(){
this.flag=!this.flag
}
}
})

6.列表渲染指令

vue 提供了 v-for 列表渲染指令,用来辅助我们循环渲染一个列表结构。

注意:想要循环渲染哪个元素,v-for 就加在哪个元素身上。

官方推荐在使用 v-for 指令的时候,要添加一个 key 属性。

key 的作用:用来给循环的元素添加一个唯一的标识,来防止可能会出现的列表无法被正确渲染的问题。

<div id="app">
<p v-for="item in data" :key='item.id'>{{item.name}}</p>
</div>
<script src="./lib/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
data:[
{name:'susu',id:0},
{name:'lvlv',id:1}
]
},
})