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入门(二) -> 正文阅读

[JavaScript知识库]Vue入门(二)

1、列表渲染(循环指令)

  • v-for的各类使用情况
<li v-for="(值,索引) in 数组">{{}}/{{索引}}</li>
<li v-for="(对象,索引) in 数组">{{对象.key}}/{{索引}}</li>
<li v-for="(值,键) in 对象">
<li v-for="(数,索引) in 数字">
<li v-for="(单字符,索引) in 字符">
  • 列表渲染时的key

    在标签里使用属性key,可以唯一标识一个元素。

1、当使用 v-for更新已渲染过的元素列表时,它默认用“就地复用”策略。即:尽量不进行dom元素的操作,只替换文本
2、进行dom操作,就用key。尽可能在使用 v-for 时提供 key attribute,除非遍历输出的 DOM 内容非常简单,或者是刻意依赖默认行为(就地复用)以获取性能上的提升。

<!-- 商品列表 -->
<ul>
    <li v-for="(goods,index) in goodslist">
        <p>序号:{{index+1}}</p>
        <p>商品名称:{{goods.goodsName}}</p>
        <p>价格:{{goods.goodsPrice}}</p>
    </li>
</ul>
let vm = new Vue({
    el:"#app",
     data:{
         goodslist:[
             {
                 goodsName:"铅笔",
                 goodsPrice:1.5
             },
             {
                 goodsName:"刚笔",
                 goodsPrice:35
             },
             {
                 goodsName:"毛笔",
                 goodsPrice:55
             }
         ],
     }
 });

注意:key不要使用(数组)下标,并不是会报错,而是失去了唯一标识的意义。

2、事件绑定(指令)

2.1、事件绑定

  1. v-on可简写为:@

    功能:绑定事件,事件处理函数需要放在methods选项当中去,事件名不带on

  2. 绑定事件的几种情况

<input type="button" v-on:事件名="方法"  >
<input type="button" v-on:事件名="方法(参数)" >
<input type="button" v-on:事件名="方法($event,参数)">
<div id="app">
    <input type="button" value="无参"  v-on:click="fn1" >
    <input type="button" value="无参时获取事件对象"  v-on:click="fn2" >
    <input type="button" value="有参时获取事件对象"  v-on:click="fn3($event,12)" >
</div>
let vm = new Vue({
    el:"#app",
    data:{
        msg:"hello"
    },
    //所有事件函数写在methods项中
    methods:{
        fn1(){
            console.log("fn1");
        },
        fn2(e){
            console.log(e);
        },
        fn3(e,a){
            console.log(e);
            console.log(a);
        },
    }
});
  1. 获取事件对象

    不传参,默认第一个参数,就是事件对象
    传参,事件对象需要手动传入(使用官方提供的 $event)

  2. 事件处理函数中的this

    methods选项里的函数里的this都是vue对象本身

注意:vue提供的选项的值如果是函数时,不可用箭头函数 , 因为会造成this丢失。

2.2、事件修饰符

  • 格式
<div @click.修饰符="函数"></div>
  • 常见的修饰符
.stop     阻止单击事件继续传播(阻止事件流)
.prevent    阻止默认行为
.capture    使用事件捕获模式
.self		点到自己时才触发
.once  	只会触发一次
.passive 	onScroll事件 结束时触发一次,不会频繁触发

注意:使用修饰符时,顺序很重要;比如,用 v-on:click.stop.self 会阻止所有的点击,而 `v-on:click.self.stop 阻止自身的点击,stop就不起作用了。

2.3、按键修饰符

  • 常见修饰符
<!--普通键-->
<div @keyup.修饰符="函数"></div>
  	.left				左
	.enter				回车
	.13  				可以使用键码

<!--(组合)-->
<div @keyup.修饰符="函数"></div>
  	.ctrl 				
	.alt					
	.shift  				
	.exact  精准控制,@键盘事件.修饰符1.修饰符2.exact  
<!--鼠标-->
<div @mousedown.修饰符="函数"></div>
  	 .left 				
	 .right					
	 .middle	鼠标中键

3、双向绑定(指令)-表单控件绑定

3.1、双向绑定(指令)

  • v-model

    功能:视图控制数据,数据也可控制视图

//不使用v-model完成双向绑定
<input type="text" :value="data数据" v-on:input="changeIptValue">

//使用v-model完成双向绑定
<input type="text" v-model="data数据">
//通过v-model双向绑定
//input框内容改变,msg跟随改变,反之同理
<div id="app">       
     <input type="text"  v-model="msg"  >
</div>
let vm = new Vue({
    el:"#app",
    data:{
        msg:"hello"
    }
});

更多表单元素的双向绑定请参考https://cn.vuejs.org/v2/guide/forms.html

3.2、表单修饰符

<input v-model.修饰符="数据" />
	  .number 	把标签的值转成数字赋给vue的数据
	  .trim 	删除前后空格
	  .lazy   	确认时才修改model数据

经典案例:动态产生响应数量文本框

<select v-model.number="num"  >
    <option value="1">1人间</option>
    <option value="2">2人间</option>
    <option value="3">3人间</option>
</select>

<input v-for="i in num" type="text"  :value="i" >

4、指令补充

  • v-pre

    功能:跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。

  • v-cloak

    功能:防闪烁,就是避免在网速较差情况下页面显示{{}}符号

//需要在样式中对该标签加入display:none
<style>
   div[v-cloak]{
        display: none;
    }   
</style>
//方能使用v-cloak
<div v-cloak>{{num}}</div>
  • v-once

    功能:只渲染元素和组件一次,随后的重新渲染,

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:16:33  更:2021-08-05 17:17:54 
 
开发: 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年5日历 -2024/5/17 12:33:36-

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