Vue 简单介绍和指令

1.js框架与库

js框架和类库都是由原生js编写而成
类库(jquery)只是想原生中的复杂调用的方法进行简化
不改变整体结构,不控制项目流程
框架同样在内部封装和简化了一些常用方法,
但是更重要的是,框架规定了我们的书写流程,
将代码按逻辑分层,更便于我们开发和维护

2.Vue对象的三个属性

el :操作的element对象
data:将要操作的数据
methods:将要操作的方法(在函数中,改变data中的变量时要注意;改变原数组的方法可以直接用,不改变原数组的方法需要赋值回原数组)

3.MVVM框架设计结构

M:Model:负责数据存储
V:View:负责页面展示
VM:View Model :负责业务逻辑处理,对数据进行加工后交给视图展示

4.使用vue的基本三步

1.导入vue.js文件
2.定义一个范围,表示此范围内的所有指令都是被Vue来解决的
3.通过new Vue()实例化一个对象

5.指令

v-text
更新元素的textContent。
如果要更新部分的textContent,需要使用{{msg}}插值

<span v-text="msg">更新全部content </span>
<span> 可以只更新{{msg}}</span>

差值表达式 {{ }}
与v-text 的区别
{{ }}在加载html再加载Vue.js的时候会闪现{{}}后再渲染数据
解决办法:
1、在标签上挂载v-clock指令。

<div v-cloak>{{ msg }}</div>

2.在style标签种书写相应样式

[v-cloak]{
    display: none;
    }

v-text在上述的情况下,会将没有渲染出来的数据隐藏;
双大括号会将数据解释为普通文本,而非 HTML 代码
v-cloak
这个指令保持在元素上直到关联实例结束编译。
和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕

v-pre
跳过这个元素和它的子元素的编译过程。
可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译
v-once
只渲染元素和组件一次。随后的重新渲染,
元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能
v-html
更新元素的 innerHTML;
会编译字符串中的标签,即识别HTML

v-on 事件添加

<a v-on:click="doSomething">...</a>

可以简写成@

<a @click="doSomething">...</a>

* v-on 修饰符*
.stop - 调用 event.stopPropagation();
.prevent - 调用 event.preventDefault();
.capture - 添加事件侦听器时使用 capture 模式;
.self - 只当事件是从侦听器绑定的元素本身触发时才触发回调;
.{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。
.native - 监听组件根元素的原生事件。
.once - 只触发一次回调。
.left - (2.2.0) 只当点击鼠标左键时触发。
.right - (2.2.0) 只当点击鼠标右键时触发。
.middle - (2.2.0) 只当点击鼠标中键时触发。
.passive - (2.3.0) 以 { passive: true } 模式添加侦听器。

v-bind 单向绑定
动态地绑定一个或多个特性
可绑定:
class:
<div :class="{ red: isRed }"></div>

<div :class="[classA, classB]"></div>
<div :class="[classA, { classB: isB, classC: isC }]">

style

    <div :style="{ fontSize: size + 'px' }"></div>
    <div :style="[styleObjectA, styleObjectB]"></div>

简写 空格:

v-model:双向绑定
适用于表单属性(input,select,textarea,components)
v-model 修饰符:
.lazy
失焦更新数据,

<input v-model.lazy="msg" >

.number
将输入的值转换为Number类型( 如果原值的结果为NAN则返回原值 )
这通常很有用,因为在 type=”number” 时 HTML 中输入的值也总是会返回字符串类型。

<input v-model.number="age" type="number">

.trim
自动过滤用户输入的首尾空格

<input v-model.trim="msg">

v-for
根据一组数组的选项列表进行渲染
v-for 指令需要使用 item in items 形式的特殊语法,items是源数据数组,并且item 是数组元素迭代的别名
key :v-for 默认行为试着不改变整体,而是替换元素,迫使其重新排序的元素,你需要提供一个key的特殊属性

<div v-for="item in items" :key="item.id">
       {{ item.text }}
    </div>

建议尽可能在使用 v-for 时提供 key,除非遍历输出的 DOM 内容非常简单,或者是刻意依赖默认行为以获取性能上的提升
一个对象的遍历
value 是循环的每一项的键值
key 循环的每一项的键名
index 是循环的每一项的索引值

<div v-for="(value, key, index) in object">
  {{ index }}. {{ key }}: {{ value }}
</div>

一个数组的遍历
item 是循环的每一项
index 是循环的每一项的索引值

<ul id="example-2">
  <li v-for="(item, index) in items">
    {{ index }} - {{ item.message }}
  </li>
</ul>

v-if
当条件变化时该指令触发过渡效果;
删除/添加元素 控制多行元素
根据表达式的值的真假条件渲染元素,在切换时元素及它的数据绑定 / 组件被销毁并重建。
因为 v-if 是一个指令,所以必须将它添加到一个元素上。但是如果想切换多个元素呢?
此时可以把一个 <template> 元素当做不可见的包裹元素,并在上面使用 v-if。最终的渲染结果将不包含 <template> 元素
v-else-if
前一兄弟元素必须有 v-if 或 v-else-if
v-else
前一兄弟元素必须有 v-if 或 v-else-if
v-show
控制单行元素显示隐藏;
根据表达式之真假值,切换元素的 display CSS 属性
当和 v-if 一起使用时,v-for 的优先级比 v-if 更高

@keyup
@keyup.13=””
@keyup.aaa=”“

Vue.config.keyCodes.aaa=13 //设置keyup键位

input键盘弹起事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值