一、Vue概述
1.1 Vue是什么
Vue (读音 /vjuː/) 是一套用于构建用户界面的渐进式框架。基于js动态操作html标签的js库,Vue 也完全能够为复杂的单页应用提供驱动。火爆的前端js框架
1.2 Vue初体验
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Vue初体验</title><script src="https://unpkg.com/vue@next"></script></head><body><!-- 定义 显示标签 --><div id="dv01">次数: {{ counter }}<h1>{{msg}}</h1></div><script>//定义数据函数对象--Modelconst data = {data() {return {counter: 10,msg:"学习Vue,真开心!"}}}//将数据函数和标签对应绑定Vue.createApp(data).mount('#dv01');</script></body></html>
使用步骤:
1.引入vue的js库
2.绘制标签div
通过{{属性名}}:文本插值,双大括号法
3.准备js代码
1.数据函数,返回值也就是数据
const 变量名= {
data() {
return {
属性名: 属性的值
}
}
}
2.实现数据函数和标签的绑定关系
Vue.createApp(变量名).mount(‘#标签的id名称’);
1.3 Vue特性
Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的标签,分离和实时渲染,数据是响应式:数据只要改变,页面标签的内容也跟着一起改变。
a.数据响应式
b.文本插值,格式: {{属性名}}
c.属性绑定,格式: v-bind:属性名=”Vue中data的属性名”
d.事件绑定,格式: v-on:事件名=”Vue中函数名称”
e.双向绑定,格式:v-model=”Vue中data的属性名” ,注意:表单标签,比如input 、select、 textarea
f.分支语法,格式:v-if
g.循环语法,格式:v-for=”变量名 in Vue中data的属性名”
二、Vue基础
2.1 文本插值
- 数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值
- 无论何时,绑定的组件实例上属性 发生了改变,插值处的内容都会更新。响应式
- 通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新
- 双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用v-html指令
对于所有的数据绑定,Vue.js 都提供了完全的 JavaScript 表达式支持
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Vue特性</title><script src="https://unpkg.com/vue@next"></script></head><body><div id="dv01"><h1>当前时间:{{ctime}}</h1><h1 v-once>第一次的时间:{{ctime}}</h1><button v-on:click="show">更新时间</button><div v-html="str1"></div><div><h1>你的性别:{{sex==1?'男':'女'}}</h1></div><div>{{str2.length>0?str2:'默认内容'}}</div></div><script>//定义数据对象const params={data(){//数据源return {ctime:new Date().toLocaleTimeString(),str1:"<h1>看看我,快点!</h1>",sex:1,str2:""}},methods:{//函数集show(){this.ctime=new Date().toLocaleTimeString();}}}//实现绑定和渲染Vue.createApp(params).mount('#dv01');</script></body></html>
2.2 属性绑定
Mustache 语法不能在 HTML attribute 中使用,然而,可以使用 v-bind指令
- 格式: v-bind:属性名=”Vue中data的属性名”
v-bind:属性名 简称 :属性名 ```html <!DOCTYPE html>
<a name="SFebY"></a>### 2.3 事件绑定- 使用 v-on 指令 (通常缩写为 @ 符号) 来监听 DOM 事件,并在触发事件时执行一些 JavaScript- 常用事件: click dblclick change keyup- 在监听键盘事件时,Vue 允许为 v-on 或者 @ 在监听键盘事件时添加按键修饰符- 事件处理程序中可以有多个方法,这些方法由逗号运算符分隔```html<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><script src="https://unpkg.com/vue@next"></script><style>.dv2{width: 30px;height: 30px;background-color: red;position: relative;left: 10px;top: 10px;}</style></head><body><div id="dv01"><h1 :style="style1" @click="crandom">你的幸运数字:{{num}}</h1><div><input v-model="name" @change="showName"></div><h1 @dblclick="sj">双击6666</h1><input @keyup.down="xy" @keyup.up="sy" @keyup.left="zy" @keyup.right="yy" class="dv2" :style="dvposition"></input><button @click="xy(),yy()">动起来</button></div><script>function randomHexColor() { //随机生成十六进制颜色var hex = Math.floor(Math.random() * 16777216).toString(16); //生成ffffff以内16进制数while (hex.length < 6) { //while循环判断hex位数,少于6位前面加0凑够6位hex = '0' + hex;}return '#' + hex; //返回‘#'开头16进制颜色}//定义数据函数对象--Modelconst params = {data() {return {num: 0,style1:"background-color:red",name:"",lnum:10,tnum:10,dvposition:"left: 10px;top:10px"}},methods:{crandom(){this.num=Math.floor(Math.random()*10);this.style1="background-color:"+randomHexColor();},showName(){alert(this.name);},sj(){this.name="双击成功:"+new Date().toLocaleTimeString()},sy(){this.tnum-=10;this.dvposition="left: "+this.lnum+"px;top:"+this.tnum+"px";},xy(){this.tnum+=10;this.dvposition="left: "+this.lnum+"px;top:"+this.tnum+"px";},zy(){this.lnum-=10;this.dvposition="left: "+this.lnum+"px;top:"+this.tnum+"px";},yy(){this.lnum+=10;this.dvposition="left: "+this.lnum+"px;top:"+this.tnum+"px";}}}//将数据函数和标签对应绑定Vue.createApp(params).mount('#dv01');</script></body></html>
2.4 双向绑定
用 v-model 指令在表单 、
