Vue2(初识vue)(二)

简介: Vue2(初识vue)

2.2-6 v-if指令与v-show指令区别

按下F12键,打开控制台查看


  • v-if指令满足条件时会渲染到HTML中,不满足条件时,不会渲染
  • 使用v-show指令的元素始终会被渲染到HTML中
  • 只是简单地为元素设置CSS的style属性。当不满足条件的元素被设置style="display:none"样式


应用场景的区别


  • v-if指令有更高的切换消耗,当v-if指令条件成立的时候会将元素加上,不成立的时候,就会移除DOM,并且内部的指令不会执行
  • v-show指令有更高的初始渲染消耗,v-show只是简单的隐藏和显示


2.2-7 指令v-on

v-on指令为HTML元素绑定事件监听


v-on:事件名称 ="函数名称() "
简写形式   @事件名称 ="函数名称()"


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue2</title>
</head>
<body>
    <div id="app">
        {{message}}<br>
        <button @click="fun1">点击1</button>
        <button @dblclick="fun2">双击2</button> 
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    // 创建一个Vue实例
    var app = new Vue({
        el:"#app", // 绑定一个元素
        data(){
            return {
                message: 'Hello world!',
            } 
        },
        methods:{
             // 声明了一个叫fun1的方法
             fun1(){
                // 怎么在方法中使用data对象的变量,需要使用this
                console.log("button1被点击了",this.message);
                this.isShow=false
                if(this.isIf){
                    this.isIf=false
                }else{
                    this.isIf=true
                }
            },
            fun2(){
                console.log("button2被双击了");
            },
        }
    })
</script>
</html>


4d1e23d5c2019a62699c664285067f8a_690c4306a8534241a16f211cfba1ea26.png


2.2-8 指令v-bind

v-bind指令可以在其名称后面带一个参数,参数通常是HTML元素的特性(attribute)


v-bind:属性名 ="表达式" 
简写形式 :属性名 ="表达式"


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue2</title>
</head>
<body>
    <div id="app">
        <div>
            <img v-bind:src="img1url" width="300px" height="100px" alt="">
        </div>
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    // 创建一个Vue实例
    var app = new Vue({
        el:"#app", // 绑定一个元素
        data(){
            return {
                img1url:'../img/banner1.jpg',
            } 
        },
    })
</script>
</html>


2fc640efa5f852ba44821c8bad3ce80e_9499a59fc8294794939982ec7a50e99a.png


2.2-9 指令v-model

v-model指令能轻松实现表单输入和应用状态之间的双向绑定


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue2</title>
</head>
<body>
    <div id="app">
        <form action="">
            <!-- 双向数据绑定是表单元素进行绑定 -->
            <input type="text" name="personNmae" v-model="person.name">
            <input type="text" name="age" v-model="person.age">
            <select name="love" v-model="person.love">
                <option value="eat">吃</option>
                <option value="drick">喝</option>
            </select>
            <input type="radio" v-model="person.sex" name="sex" value="1">男
            <input type="radio" v-model="person.sex" name="sex" value="2">女
        </form>
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    // 创建一个Vue实例
    var app = new Vue({
        el:"#app", // 绑定一个元素
        data(){
            return {
                person:{
                    name:'王琪',
                    age:18,
                    love:'eat',
                    sex:1,
                },
            } 
        },
    })
</script>
</html>


b1a969fdcef9dc32a94f40912d1e6d92_2b8912a71aa54da5accd12947ae9291f.png


2.2-10 指令v-for

v-for指令可以遍历data中的数据,并在页面进行数据展示


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue2</title>
</head>
<body>
    <div id="app">
        <form action="">
            <div>
                <select v-model="shabi1" name="" id="">
                    <option v-for="(item, index) in shabi" >{{item}}</option>
                </select>
            </div>
            <div v-for="(attr,key) in person">
                {{key}}-{{attr}}
            </div>
        </form>
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    // 创建一个Vue实例
    var app = new Vue({
        el:"#app", // 绑定一个元素
        data(){
            return {
                person:{
                    name:'王导',
                    age:18,
                    love:'eat',
                    sex:1,
                },
                shabi:["小豪","王导","光头"],
                shabi1:"小豪",
            } 
        },
    })
</script>
</html>

927dcf2cdbb3ee1343a8d4e1ef0c91cf_5c9d5fcb98bb4c7ebdac99b3197c3f75.png


相关文章
|
2月前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
134 1
|
12天前
|
JavaScript 安全 API
iframe嵌入页面实现免登录思路(以vue为例)
通过上述步骤,可以在Vue.js项目中通过 `iframe`实现不同应用间的免登录功能。利用Token传递和消息传递机制,可以确保安全、高效地在主应用和子应用间共享登录状态。这种方法在实际项目中具有广泛的应用前景,能够显著提升用户体验。
37 8
|
13天前
|
存储 设计模式 JavaScript
Vue 组件化开发:构建高质量应用的核心
本文深入探讨了 Vue.js 组件化开发的核心概念与最佳实践。
52 1
|
3月前
|
JavaScript 前端开发 API
Vue 3 中 v-model 与 Vue 2 中 v-model 的区别是什么?
总的来说,Vue 3 中的 `v-model` 在灵活性、与组合式 API 的结合、对自定义组件的支持等方面都有了明显的提升和改进,使其更适应现代前端开发的需求和趋势。但需要注意的是,在迁移过程中可能需要对一些代码进行调整和适配。
153 60
|
2月前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
3月前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
3月前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
3月前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能
|
3月前
|
JavaScript 前端开发 API
从Vue 2到Vue 3的演进
从Vue 2到Vue 3的演进
90 17
|
3月前
|
JavaScript 前端开发 API
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
109 17