vue学完就入门!

前言

学习目标:

  • 用 Vue 实现常见的网页效果
  • 学习Vue指令,巩固所学
  • Vue指令就是v-开头的指令

内容事件绑定

V-text

作用:设置标签的内容

默认写法会替换全部内容,使用差值表达式可以替换指定内容

<!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>Document</title>
    <style>

    </style>
</head>

<body>
    <div id="app">
        <h3 v-text="message+'!'" >我是憨憨</h3>
        <!-- 会显示我是帅哥,覆盖憨憨 -->
        <h3>{{message+'!'}}这毫无疑问</h3>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message:'我是帅哥',
            }
        })
    </script>
</body>

</html>

V-html

作用:能解析html

  • 内容中有html结构会被解析为标签
  • v-text只能文本
  • 文本用text,需要解析html用html

<!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>Document</title>
    <style>

    </style>
</head>

<body>
    <div id="app">
        <h2 v-html="web"></h2>
<a href="https://blog.csdn.net/m0_49413017?spm=1011.2124.3001.5343"></a>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                web:'<a href="https://blog.csdn.net/m0_49413017?spm=1011.2124.3001.5343">我的csdn博客</a>',
            
            }
        })
    </script>
</body>

</html>

v-on

作用:为元素绑定事件

  • 创建实例时:el挂载点,data数据,methods方法
  • v-on指令是绑定事件,简写为@
  • 通过this,关键字获取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>Document</title>
    <style>

    </style>
</head>

<body>
    <div id="app">
       <input type="button" value="摸摸我" @click="clickit">
       <h2 @click="clickit">{{message}}</h2>

    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message:'点一下',
            },
            methods:{
                clickit:function(){
                    this.message+="亲你一口"
                }
            }
        })
    </script>
</body>

</html>

简单计算器

  1. data中定义数据:比如message
  2. methods中添加两个方法:比如add(递增),sub(递减)
  3. 使用v-text将num设置给span标签
  4. 使用v-on将add和sub分别绑定给+,-按钮
<!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>Document</title>
    <style>

    </style>
</head>

<body>
    <div id="app">
        <input type="button" value="+" @click="add">
        <span>{{message}}</span>
        <input type="button" value="-" @click="sub">
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: 1,
            },
            methods:{
                add:function(){
                    this.message++
                },
                sub:function(){
                    this.message--

                }
            }
        })
    </script>
</body>

</html>

image

v-show

作用:根据表达值的真假,切换元素的显示和隐藏

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue基础</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <style>
        #app>img {
            width: 400px;
            height: 400px;
            margin: 0 auto;
        }

    </style>
</head>

<body>
    <div id="app">
        <input type="button" value="显示/隐藏" @click="changeisshow">
        <input type="button" value="成人内容" @click="addage">
        <img v-show="ishow"
            src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2F50%2Fv2-f8ce1fdc8bce264456d33f4f31c343dc_hd.jpg&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1621416089&t=b39d95b0250f58a0c89e89134310df34"
            alt="思密达">
        <img v-show="age>=18" src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3774010462,110501402&fm=26&gp=0.jpg" alt="xiba">
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                num: 1,
                ishow: false,
                age: 17

            },
            methods: {
                changeisshow: function () {
                    this.ishow = !this.ishow;
                },
                addage: function () {
                    this.age++
                }
            }

        })

    </script>
</body>

</html>

image

v-if

作用:根据表达式的真假,切换元素的显示和隐藏(操纵dom元素)

  • v-if直接消失
  • v-show 加dis -play

v-bind指令

使用方式:

v-bind:属性名=表达式

vue里面我们能够省去v-bind
为 :属性名=表达式 的方式

v-for

作用:根据数据生成列表结构

  • 数组经常和v-for结合使用
  • 语法是(item,index)in 数据
  • item和index可以结合其他指令使用
  • 是响应式
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue基础</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <style>

    </style>
</head>

<body>
    <div id="app">
       <li v-for="item in Array">{{item}}</li>
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                Array:['西瓜','草莓','橘子','荔枝',]

            },
            methods: {}
 

        })

    </script>
</body>

</html>

显示效果

image

v-on 补充

  • 事件绑定的方法可以写成函数调用的形式,可以传入自定义参数
  • 定义方法时需要定义形参来接受传入的实参
  • 事件的后面跟上.修饰符可以对事件进行限制
  • .enter可以限制触发的按键为回车

v-model

作用:获取和设置表单元素的值(双向数据绑定)

  • 绑定的数据会和表单元素值相关联
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue基础</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <style>

    </style>
</head>

<body>
    <div id="app">
        <input type="button" @click="setmessage" value="我的名字">
        <input type="text" v-model='message' @keyup.enter='getmessage' >
        <h3>{{message}}</h3>
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                message:'lehan',

            },
            methods: {
                setmessage:function(){
                    this.message='你真好看'
                },
                getmessage:function(){
                    alert(this.message)

                }

            }
 

        })

    </script>
</body>

</html>

效果:

image

学完这些 已经小入门啦

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值