IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 《风尚坐火箭学习vue》-- 第三章:Vue的语法指令事件 -> 正文阅读

[JavaScript知识库]《风尚坐火箭学习vue》-- 第三章:Vue的语法指令事件

前言:前端框架千千万,独有vue占一半

我是风尚,让我们一起坐火箭去学习Vue

?


第三章:Vue的语法和指令

上章回顾:你好好理解啊!!!算了,我给你总结一下吧”老头说道。。。。。


? ? ? ? 总结

?

模板语法-文本语法

文本

数据绑定最常见的形式就是使用{{}}语法 (双大括号)

<span> {{message}}</span>

也可以使用v-text方法

<span?v-text="message"></span>

?

html文本

双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html

<div?id="app">

???????<div?v-html="rawMsg"></div>

???</div>

???<script?type="text/javascript">

???????var app=new Vue({

???????????el:'#app',

???????????data:{

???????????????message:'hello Vue!',

???????????????rawMsg:'<h1>你好风尚vue</h1>'

???????????}

???????})

???</script>

模板语法-属性

给html标签绑定一个属性值应该使用 v-bind:属性名称

以下代码给h1绑定一个新的id和title属性

<div?id="app">

??<h1?v-bind:id="dyId"?v-bind:title="dyTitle">我是一行快乐的标题</h1>

</div>

?<script?type="text/javascript">

?????var app=new Vue({

?????????el:'#app',

?????????data:{

?????????????dyId:'best',

?????????????dyTitle:'看见我的人一生平安'

?????????}

?????})

?</script>

渲染结果是:

<h1?id="best"?title="看见我的人一生平安">我是一行快乐的标题</h1>

绑定属性也是可以直接简写:

<h1?:id="dyId"?:title="dyTitle">我是一行快乐的标题</h1>

?

使用 JavaScript 表达式

在我们的模板中,我们一直都只绑定简单的属性键值。但实际上,对于所有的数据绑定,Vue.js 都提供了完全的 JavaScript 表达式支持。

{{4+5}}?

{{ ok ? '是的' : '不是' }}

{{['风尚','风尚啊'].join('--')}}

<!-- 这是语句,不是表达式 -->

{{ var a = 1 }}

<!-- 流控制也不会生效,请使用三元表达式 -->

{{ if (ok) { return message } }}

条件指令 v-if

指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 真 值的时候被渲染。

<div?v-if="isLogin">你好,风尚!</div>

也可以用 v-else 添加一个“else 块”:

<div v-else="">请登录后操作</div>

<div?id="app">

????<div?v-if="isLogin">你好:风尚</div>

????<div?v-else="">请登录后操作</div>

</div>

<script?type="text/javascript">

????var app=new Vue({

????????el:'#app',

????????data:{

???????????isLogin:false

????????}

????})

</script>

?

v-show指令

另一个用于根据条件展示元素的选项是 v-show 指令

<h1?v-show="isShow">Hello!</h1>

v-show 只是调整css中display属性,DOM已经加载,只是CSS控制没有显示出来。

v-if: 判断是否加载,可以减轻服务器的压力,在需要时加载。
v-show:调整css dispaly属性,可以使客户端操作更加流畅。

列表渲染

我们用 v-for 指令根据一组数组的选项列表进行渲染。v-for 指令需要使用 item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名。

基本用法

<li?v-for="item in items">

???{{item}}

</li>

var app=new Vue({

??el:'#app',

??data:{

??????items:['angular','react','vue',jquery]

??}

})

对象循环输出

<li?v-for="item in items">

???{{item.name}}--{{item.age}}

</li>

var app=new Vue({

??el:'#app',

??data:{

??????items:[

?????????{name:"fsfs", age:18},

?????????{name:"fsa", age:22},

?????????{name:"风尚啊", age:28},

??????]

??}

})

索引

<li?v-for="(item, index) in items">

???{{item.name}}-{{index}}-{{item.age}}

</li>

结果是

<li>fsfs-0-18</li>

<li>fsa-0-22</li>

<li>风尚啊-0-28</li>

key

为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。理想的 key 值是每项都有的唯一 id。

<li?v-for="(item,index) in items"?:key="index">

???{{item}}

</li>

var app=new Vue({

??el:'#app',

??data:{

??????items:['mumu','风尚啊','风尚','fsa']

??}

})

如果不绑定tip 重复的'mumu' 再列表循环在列表循环会报错

监听事件

可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

<div?id="app">

<button?v-on:click="counter += 1">加 1</button>

<p>按钮被点击了 {{ counter }}次.</p>

</div>

var example1 = new Vue({

el: '#ap',

??data: {

????counter: 0

??}

})

事件处理方法

<div?id="app">????????

???<button?v-on:click="greet">问候</button>

</div>

<script>

???var app = new Vue({

??????el:'#app',

??????data:{

?????????name:'Vue.js'

??????},

??????methods:{

?????????greet:function(event){

????????????// 'this' 在方法里指向当前 Vue 实例

????????????alert('你好'+this.name+'!');

????????????// 'even' 是元生 DOM事件

????????????if(event){

???????????????alert(event.target.tagName)

????????????}

?????????}

??????}

???})

???// 也可以用JavaScript 直接调用

???app.greet();

</script>

事件绑定简写方式
问候

事件修饰符

在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求

为了解决这个问题,Vue.js 为 v-on 提供了事件修饰符。之前提过,修饰符是由点开头的指令后缀来表示的。

  • .stop
  • .prevent
  • .once

<!-- 阻止单击事件继续传播 -->

<a?v-on:click.stop="doThis"></a>

<!-- 提交事件不再重载页面 -->

<form?v-on:submit.prevent="onSubmit"></form>

<!-- 修饰符可以串联 -->

<a?v-on:click.stop.prevent="doThat"></a>

??

<!-- 点击事件将只会触发一次 -->

<a?v-on:click.once="doThis"></a>

按键修饰符

在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

<!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` -->

<input?v-on:keyup.enter="submit">

<input?v-on:keyup.page-down="onPageDown">

按键码

使用 keyCode 特性也是允许的:

<input?v-on:keyup.13="submit">

Vue 提供了绝大多数常用的按键码的别名:

  • .enter
  • .tab
  • .delete?(捕获“删除”和“退格”键)
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right

?

表单输入绑定

v-model

你可以用 v-model 指令在表单 >input<、>textarea< 及 >select< 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。

信息是: {{msg }}

复选框

?{{ checked }}

多个复选框

<div?id="app">

??<input?type="checkbox"?id="name1"?value="风尚"?v-model="checkedNames">

??<label?for="name1">风尚</label>

??<input?type="checkbox"?id="name2"?value="风尚啊"?v-model="checkedNames">

??<label?for="name2">风尚啊</label>

??<input?type="checkbox"?id="name3"?value="fsfs"?v-model="checkedNames">

??<label?for="name3">mumu</label>

??<br>

??<span>选择的名字是: {{ checkedNames }}</span>

</div>

???<script>

??????var app = new Vue({

?????????data:{checkedNames:[]},

???????})

???</script>

<!-- 结果 -->

<!-- 选择的名字是:["风尚","风尚啊","fsfs"] -->

修饰符

在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 (除了上述输入法组合文字时)。你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步:

<!-- 在“change”时而非“input”时更新 -->

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

.number

如果想自动将用户的输入值转为数值类型,可以给 v-model 添加 number 修饰符

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

.trim 如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符:

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

?




今天就到这里吧,风尚,好好学啊!慢慢消化,一会去吃饭

风尚一听,学!为了干饭!!!

冲冲冲!!!!!!

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:18:19  更:2021-11-20 18:19:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:18:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码