【vue】vue最基础的几种指令和对应的示范

本帖子的知识点来源🔜黑马程序员vue前端基础教程-4个小时带你快速入门vue的一部分知识点

1.如何导入vue?

script标签里导入,就这么简单,不用安装node.js哈

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>文档标题</title>
</head>
<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</body>
</html>

2.[v-text]—如何通过vue给元素赋值(字符串类型或者数组类型)

花括号写法、v-text写法,都显示在代码里了


<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    
    <div class="app">
        
        <h2 v-text="message+',不变的字符串内容(可有可无)'"></h2>
        <h2>{{school.name+',不变的字符串内容(可有可无)'}}</h2>
        
        <ul>
            <li v-text="campus[0]"></li>
            <li>{{campus[1]}}</li>
        </ul>
    </div>
    <script>
        var app = new Vue({
            el: ".app",
            data: {
                message: "a",
                school: {name: "b",mobile: "123"},
                campus: ["北京校区", "上海校区"]
            }
        })
    </script>
</body>

效果:
在这里插入图片描述
对应的关系:
在这里插入图片描述

3.[v-html]—如何设置元素为超链接


<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <div class="app">
        <h2 v-html="content"></h2>
    </div>
    
    <script>
        var app = new Vue({
            el: ".app",
            data: {
                content:"<a href='http://www.baidu.com'>前往百度</a>",
            }
        })
    </script>
</body>

显示效果:
在这里插入图片描述

4.[v-on]—怎么给元素设置触发事件

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <div class="app">
        <input type="button" value="单击AA" v-on:click="doIt">
        <input type="button" value="单击(简写)" @click="doIt">

        <h2 @dblclick="changeWord">{{content}}</h2>
    </div>

    <script>
        var app = new Vue({
            el: ".app",
            data: {
                content: "双击本字符可以追加文字哦",
            },
            methods: {
                doIt: function () {
                    alert("AAA");
                },
                changeWord: function () {
                    this.content += "牛逼!";
                }
            }
        })
    </script>
</body>

显示效果:
1.刷新页面后:
在这里插入图片描述
2.点击两个按钮的效果:
在这里插入图片描述
3.双击文字2次后的效果:
在这里插入图片描述

5.[v-on]—如何实现触发事件后带上参数请求方法

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <div id="app">
        <input type="text" @keyup.enter="sumbitName('hello')" />
    </div>
    <script>
        var app = new Vue({
            el: "#app",
            methods: {
                sumbitName: function (word) {
                    alert("say " + word)
                }
            }
        })
    </script>
</body>

显示效果:只要在输入框中按一下回车键,就可以触发请求方法,参数为hello
在这里插入图片描述

6.[v-text \ v-on]—如何实现计个数器?

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<div id="app">
        <div class="input-num">
            <button @click="sub">
                -
            </button>
            <span>{{ num }}</span>
            <button @click="add">
                +
            </button>
        </div>
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                num: 0,
            },
            methods: {
                sub: function () {
                    if (this.num == 0) {
                        alert("数字不能小于0")
                    } else {
                        this.num--;
                    }
                },
                add: function () {
                    if (this.num == 10) {
                        alert("数字不能大于0")
                    } else {
                        this.num++;
                    }
                }
            }
        })
    </script>
</body>

显示效果:点击加号数字自增,点击减号数字自减
在这里插入图片描述

7.[v-show \ v-if ]—如何改变元素的显示/隐藏状态?

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>


<div id="app">
       <img v-show="isShow" sizes="small" src="图片地址">
        <!-- 可以把v-show改成v-if,页面效果一致-->
       <!-- v-show改变的是display的值,v-if是直接生成或删除对应标签-->
       <input type="button" value="点击" @click="chang">
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                isShow: true,
            },
            methods: {
                chang: function () {
                this.isShow=!this.isShow;
                }
            }
        })
    </script>
</body>

显示效果:
点击按钮后就会隐藏或显示图片
在这里插入图片描述

8.[v-show \ v-if ]—如何根据条件自动改变元素的显示/隐藏状态?

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <div id="app">
       <img v-show="money>30" sizes="small" src="图片地址">
       <!-- 可以把v-show改成v-if,页面效果一致-->
       <!-- v-show改变的是display的值,v-if是直接生成或删除对应标签-->
       <input type="button" value="点击" @click="chang">
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                money: 10,
            },
            methods: {
                chang: function () {
                this.money+=10
                }
            }
        })
    </script>
</body>

显示效果:
点击两次按钮图片就会出来

9.[v-bind]—如何给标签设置src、title属性值?

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <div id="app">
        <img :src="imgSrc" :title="'图片为'+imgTitle">
        <!-- 可以把:src改成v-bind:src/:title改成v-bind:title -->
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                imgSrc: "图片地址",
                imgTitle: "京东标志"
            }
        })
    </script>
</body>

显示效果:
第二张图鼠标悬停后会显示图片说明文字(即title的值)
在这里插入图片描述

10.[v-bind]—如何根据条件来设置标签的class属性值?

<head>
    <meta charset="utf-8">
    <title>文档标题</title>
    <style>
        .mypic {
            border: 5px solid blue;
        }
    </style>
</head>

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <div id="app">
        <img :src="imgSrc" :class="hasClass?'mypic':''">
        <!-- 三元表达式可以改成"{mypic:hasClass}"-->
        <!-- :class改成v-bind:class -->
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                imgSrc: "图片地址",
                hasClass: true//这里如果变成false则无法显示蓝色边框
            }
        })
    </script>
</body>

显示效果:
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/ab3e8f1397f64c35bcf863fbcd780e54.png

11.[v-on / v-show]—如何制作图片切换浏览?

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

    <div id="app">
        <img v-show="index!=0" @click="prev" src="左按钮图片地址">
        <img :src="imgArr[index]">
        <img v-show="index != imgArr.length-1" @click="next" src="右按钮图片地址">
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                imgArr: [
                    "图片地址1",
                    "图片地址2",
                    "图片地址3"
                ],
                index: 1,
            },
            methods: {
                prev: function () {
                    this.index--;
                },
                next: function () {
                    this.index++;
                }
            }
        })
    </script>
</body>

显示效果:左右点按钮就可以切换图片
在这里插入图片描述

12.[v-for]—如何遍历出数组和对象的值?

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>文档标题</title>
</head>

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <div id="app">
        <ul>
            <li v-for="(it,index) in arr">
                {{index}}-->{{ it }}
            </li>
        </ul>
        <ul>
            <li v-for="item in obj">
                {{ item.job }}
            </li>
        </ul>
    </div>
    <script>
        var app = new Vue({
            el: "#app",
            data: {
                arr: ["mary", "tim", "james"],
                obj: [{ job: "会计" }, { job: "律师" }, { job: "教师" }]
            }
        })
    </script>
</body>
</html>

显示效果:
在这里插入图片描述

13.[v-model]—如何获取或改变输入框的值?

<body>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <div id="app">
        注册名:<input type="text" v-model="signUpName" @keyup.enter="sumbitName()" />
        <input type="button" value="一键随机生成" @click="createName">
    </div>
    <script>
        var app = new Vue({
            el: "#app",
            data: {
                signUpName: ""
            },
            methods: {
                sumbitName: function () {
                    alert(this.signUpName + '注册成功')
                    this.signUpName = '';
                },
                createName: function () {
                    //这部分是生成随机字符串
                    var numlist = ['a', 'b', 'c', 'd', 'e', 'f'];
                    var newName = [];

                        for (let i = 0; i < 6; i++) {
                            var Range = numlist.length - 1;
                            var Rand = Math.random();
                            var num = 0 + Math.round(Rand * Range);
                            newName.unshift(numlist[num])
                        }
                        
                        //赋值
                    this.signUpName = newName.toString().replaceAll(',', '');
                }
            }
        })
    </script>
</body>

显示效果:
1.输入十万猫毛,按下回车键,就会获取输入框内容,弹出注册成功提醒,点击确认后清空输入框
在这里插入图片描述
2.每次按下按钮,会生成随机字符串,并显示在输入框中
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值