当前位置:
首页 > temp > JavaScript教程 >
-
10-vue(壹)
1. 引用
Vue是一套用于构建用户界面的渐进式框架。
本地引用下载地址
线上引用https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js
vue基础模板
<body>
<!-- view层 -->
<div id='app'>
</div>
</body>
<script>
//view model层
let vm = new Vue({
//vue控制区域
el: '#app',
//需要渲染的数据
data: {},
//引用的方法;model层
methods: {}
})
</script>
2. 插值表达式、v-cloak、v-text和v-html
{{}}是插值表达式,用来渲染页面元素
v-cloak:隐藏页面预加载内容,防止页面闪烁
v-text:指定元素标签的文本内容
v-html:会将元素标签的内容解析为html
3. v-bind和v-on
v-bind
绑定元素属性,将这个元素节点的 title
(属性名与属性值)和 Vue 实例中的 message
(属性名,属性值) 保持一致
v-bind
简写为:
v-on
添加事件监听器,通过它调用在 Vue 实例中定义的方法
v-on
简写为@
<span v-bind:title="message">我是title</span>
<span :title="message">我是title</span>
<button v-on:click="sayName">名字</button>
<button @click="sayName">名字</button>
<script>
let vm = new Vue({
el: '#app',
data: {
message: '页面加载于 ' + new Date().toLocaleString();
},
methods: {
sayName() {
console.log('name is saber');
}
}
})
</script>
3.1 事件修饰符
-
.stop
阻止事件冒泡 -
.prevent
阻止默认事件 -
.capture
事件触发机制变为捕获模式 -
.self
只当事件在该元素本身触发时触发回调,捕获和冒泡不会触发带.self
事件修饰符的元素 -
.once
事件只触发一次 -
.passive
滚动行为将会立即触发,而不会等待onScroll
完成
3.2 v-model
v-model用于数据的双向绑定;主要用于表单元素
<div id='app'> <input v-model='msg' type="text" > {{msg}} </div> <script> new Vue({ ...data: {msg:''}, }) </script>
4. v-if和v-show
v-if
:通过传入给v-if
的布尔类型值来判断是否删除此dom元素
v-show
:通过传入给v-if
的布尔类型值来判断是否隐藏此dom元素(通过display:none
的方式)
<!-- 不展示,无此dom元素 -->
<span v-if=false>我是title</span>
<!-- 不展示,元素被设置为`display:none` -->
<button v-show=false>名字</button>
v-if
后可以接v-else-if
和v-else
,但必须相连,不能有其他元素
<span v-if='num>18'>1</span>
<span v-else-if='num>30'>2</span>
<span v-else>3</span>
5. v-for和key
v-for
指令可以绑定数组的数据来渲染一个项目列表
<!-- 遍历数组;item index是数组项和索引 -->
<div v-for='(item,index) in list'>{{item}} {{index}}</div>
<!-- 遍历对象;value,key,index是属性值,属性,索引 -->
<div v-for='(value,key,index) in obj'>{{value}} {{key}} {{index}}</div>
<!-- 遍历数字 -->
<div v-for='num in 4'>{{num}}</div>
<script>
let list = ['kalin','siki','hitaki'];
let obj = {name:'laki',age:18}
</script>
使用v-for
时应尽量加入key的这个特殊属性。
在使用key时,如果有数据更改引发元素节点的添加或删除,会基于 key 的变化重新排列元素顺序,而不是所有元素重新渲染。以此来提高加载速度,提升渲染性能。
key的值应是唯一的,例如唯一的数字或字符串
<div v-for='(item,index) in list' :key='index'>
{{item}} {{index}}
</div>
6. class与style的绑定
6.1 class
在定义class时可以绑定一个对象,以动态切换class。
- vue绑定的class可以和普通的class共存
- 下例中vue绑定的class1、class2的有无取决于boolean1、boolean2的值
<div class="static"
:class="{ class1: boolean1, class2: boolean2 }"></div>
data: {
boolean1: true,
boolean2: false
}
<!-- 最终渲染为 -->
<div class="static class1"></div>
<!-- 另一种写法,不内联定义在模板里 -->
<div :class="classObj"></div>
data: {
classObj: { class1: true, class2: false },
}
在定义class时也可以绑定一个数组,以应用一个 class 列表。
<div :class="[class1, class2]"></div>
data: {
class1: 'active',
class2: 'text-danger'
}
<!-- 最终渲染为 -->
<div class="active text-danger"></div>
<!-- 也可以在数组语法中使用对象语法 -->
<div :class="[{ class1: Boolean1 }, class2]"></div>
6.2 style
- 对象语法
<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>
data: {
activeColor: 'red',
fontSize: 30
}
<!-- 建议这样写 -->
<div :style="styleObject"></div>
data: {
styleObject: {
color: 'red',
fontSize: '13px'
}
}
- 数组语法
<div :style="[baseStyles, overridStyles]"></div>
data: {
baseStyles: {
color: 'red',
},
overridStyles: {
fontSize: '13px',
}
}
__EOF__
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数