首页 > 其他分享 >day05-Vue02

day05-Vue02

时间:2023-01-08 23:23:43浏览次数:72  
标签:Vue name show 修饰符 day05 score 渲染 Vue02

Vue02

7.修饰符

7.1基本说明

修饰符(Modifiers)是以.指明的后缀,指出某个指令以特殊方式绑定

官方文档:修饰符

Vue中的修饰符有:

  1. 事件修饰符
  2. 按键修饰符
  3. 系统修饰符
  • 事件修饰符

    image-20230108184038470
    <!-- 阻止单击事件继续传播 -->
    <a v-on:click.stop="doThis"></a>
    
    <!-- 提交事件不再重载页面 -->
    <form v-on:submit.prevent="onSubmit"></form>
    
    <!-- 修饰符可以串联 -->
    <a v-on:click.stop.prevent="doThat"></a>
    
    <!-- 只有修饰符 -->
    <form v-on:submit.prevent></form>
    
    <!-- 添加事件监听器时使用事件捕获模式 -->
    <!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
    <div v-on:click.capture="doThis">...</div>
    
    <!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
    <!-- 即事件不是从内部元素触发的 -->
    <div v-on:click.self="doThat">...</div>
    
    <!-- 点击事件将只会触发一次 -->
    <a v-on:click.once="doThis"></a>
    
    <!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 -->
    <!-- 而不会等待 `onScroll` 完成  -->
    <!-- 这其中包含 `event.preventDefault()` 的情况 -->
    <div v-on:scroll.passive="onScroll">...</div>
    

7.2事件修饰符-应用实例

需求:演示 v-on:submit.prevent 的使用,如果没有输入名字,当点击注册按钮时,控制台输出”请输入名字“,否则输出“提交表单”。

image-20230108175412356

为什么在开发中,有时需要让某个指令以特殊方式绑定,比如表单提交?

  1. 有时我们不希望将这个表单进行整体提交,而是Ajax的方式进行提交
  2. 因为表单整体提交会导致重载页面,而Ajax方式可以有选择性地提交数据,并局部刷新
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"
      xmlns:v-model="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>修饰符的使用</title>
</head>
<body>
<div id="app">
    <!--
        1.修饰符用于指出一个指令应该以特殊方式绑定
        2.v-on:submit.prevent中的.prevent 修饰符表示阻止表单提交的默认行为
        3."onMySubmit()" -执行程序员指定的自定义方法
    -->
    <form action="http://www.baidu.com" v-on:submit.prevent="onMySubmit">
        <!--这里因为使用的是双向渲染,当发现data数据池中的monster对象没有name属性时,会动态地帮你生成name-->
        名字:<input type="text" v-model="monster.name"/><br/><br/>
        <button type="submit">注册</button>
    </form>
    <p>这里是服务器回送的数据=>{{count}}</p>
</div>
<script src="vue.js"></script>
<script>
    let vm = new Vue({
        el: "#app",
        data: {//数据池
            monster: {//monster数据(对象)的属性,可以动态生成
            },
            count: 0
        },
        methods: {
            onMySubmit() {
                //console.log("自定义的表单提交处理...");
                if (this.monster.name) {//如果name为undefined或""或null,都为 false
                    console.log("提交表单 name = ", this.monster.name);
                    //这里就可以根据业务发出ajax请求到后端
                    //得到数据后,再进行数据更新
                    this.count = 666;//假设为服务器返回的处理
                } else {
                    console.log("请输入名字...");
                }
            }
        }
    });
</script>
</body>
</html>

7.3拓展-其他修饰符

按键修饰符 按钮修饰符 — Vue.js (vuejs.org)

image-20230108184005948
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>修饰符的使用</title>
</head>
<body>
<div id="app">
    <h1>修饰符拓展案例</h1>
    <!--按x键触发-->
    <input type="text" v-on:keyup.x="enterX"/>
</div>
<script src="vue.js"></script>
<script>
    let vm = new Vue({
        el: "#app",
        methods: {
            enterX() {
                alert("你在输入框中输入了x键");
            }
        }
    });
</script>
</body>
</html>

此外还有系统修饰符,详细请看vue文档:系统修饰符 — Vue.js (vuejs.org)

8.条件渲染/控制 v-if & v-show

8.1基本说明

Vue提供了 v-ifv-show 条件指令完成条件渲染/控制

官方文档:条件渲染 — Vue.js (vuejs.org)

  • v-if 介绍

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

<!--v-if指令会在数据池中找到awesome,如果该数据值对应ture,则渲染下面这条内容,否则为false,不渲染
(如果找不到该数据,就是undefined,也为false)-->
<h1 v-if="awesome">Vue is awesome!</h1>

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

<h1 v-if="awesome">Vue is awesome!</h1>
<!--如果上面if块的awesome返回false,就渲染else块内容-->
<h1 v-else>Oh no 

标签:Vue,name,show,修饰符,day05,score,渲染,Vue02
From: https://www.cnblogs.com/liyuelian/p/17035717.html

相关文章

  • bbs项目day05--
    昨日内容回顾根评论优化1.点击提交按钮清空评论框里面的内容2.在页面上临时渲染一个评论楼(js模板字符串)子评论业务逻辑1.切入点是回复按钮 点击回复按钮应该......
  • Java面试题Day05
    1.说一下HashMap的实现原理?HashMap是基于哈希表的Map接口的非同步实现,此实现提供所有可选的映射操作,并允许使用null值和null键.2.HashMap是如何解决Hash冲突?核心就......
  • 【Android】学习day05|RadioButton
    注意事项:当使用默认选中标签:check时,必须要给标签加id,否则失效。这个没什么,挺简单的,就记录一下代码【监听事件】packagecom.example.app02;importandroidx.appcompat......
  • 【Android】学习day05|简单登陆页面的实现|监听代码
    实现效果如下图所示    实现代码【部分】MainActivity.java1packagecom.example.app02;23importandroidx.appcompat.app.AppCompatActivity;4......
  • JAVA零基础小白学习教程day05_java基础
    day05_java基础课程目标1.【理解】什么是方法2.【掌握】方法的语法,抄3遍3.【理解】方法的执行流程4.【掌握】方法的案例:常用类型5.【理解】方法的重载6.【......
  • day05 方法
    1.方法概述1.1方法的概念​ 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集注意:方法必须先创建才可以使用,该过程成为方法定义方法......
  • 每日食词—day059
    protectiveadj. n.防护的、给予保护的、保护的、保护assoonas一……就……quantityn.量、数量、值grantv. n.授权、授予、允许、给予、承认servern.......
  • 每日食词—day058
    topup加满、装满、充值certificaten. v.凭证、证书、认证、证明书persistv.坚持、持续、保持、固执manuallyadv.手动、手工地、人工、用手kerneln.......
  • 每日食词—day057
    gendern.性别freeadj. adv. v. n.空闲的、自由的、自由、免费、释放、无、空闲、闲置librariesn.图书馆、(程序)库、文件库、函数库compilingn. v.编译......
  • 每日食词—day056
    ordern. v.订单、订购、预定、阶、排序、次序、顺序、命令、指示contributev.有助于、贡献、捐助、投稿resourcen. v.资源、财力、办法matchn. v.匹配、......