Vue快速入门!


一、el挂载点

  • el的作用?
    用来设置Vue实例挂载(管理)的元素

  • Vue实例的作用范围是什么?
    el命中的元素及其后代元素

  • 是否可以使用其他的选择器?(除id选择器之外的选择器)
    id、标签、类选择器都可以,但是一般用id选择器,因为其他选择器可能会命中其他数据

  • 是否可以设置其他的dom元素呢?
    可以,都是必须是双标签。(但是不能使用html和body)

二、data数据对象

实例:

   <script>
        var app=new Vue({
            el:"#app",
            data:{
                message:"你好 小黑!",
                school:{
                name:"黑马程序员",
                mobile:"13850997126"
            },
            campus:["北京校区","上海校区","深圳校区","广州校区"]
            }
            
        })
    </script>

效果:

在这里插入图片描述

学习点:

  • Vue中用到的数据定义在data中
  • data中可以写复杂类型的数据
  • 渲染复杂类型数据时,遵守js的语法即可

三、本地应用

v-text

  • v-text指令的作用:设置标签的内容(textContent)
  • 默认写法会替换全部内容,使用差值表达式{{}}可以替换指定内容
<div id="app">
        {{message}}
 		<h2 v-text="message">哈哈</h2>
        <h2>{{message}}嘻嘻</h2>
</div>

<script>
        var app=new Vue({
            el:"#app",
            data:{
                message:"你好 小黑!"
            }
            
        })
    </script>

效果

在这里插入图片描述

  • 内部支持写表达式
<div id="app">
        {{message}}
 		<h2 v-text="message+'haha'">哈哈</h2>
        <h2>{{message+'haha'}}嘻嘻</h2>
</div>

v-html

  • v-html指令的作用是:设置元素的innerHTML
  • 内容中有html结构会被解析为标签
  • v-text指令无论内容是什么,只会解析为文本
  • 解析文本使用v-text,需要解析html结构使用v-html
<body>
    <div id="app">
        <p v-html="content"></p>
        <p v-text="content"></p>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app=new Vue({
            el:"#app",
            data:{
                content:"<a href='http://www.baidu.com'>百度</a>"
            }
        })
    </script>
</body>

效果:

在这里插入图片描述

v-on

  • v-on指令的作用是:为元素绑定事件
  • 事件名不需要写on
  • 指令可以简写@
  • 绑定的方法定义在methods属性中
  • 方法内部通过this关键字可以访问定义在data中数据

实例:

<body>
    <div id="app">
        <input type="button" value="v-on指令" v-on:click="doIt">
        <input type="button" value="v-on简写" @click="doIt">
        <input type="button" value="双击事件" @dblclick="doIt">
        <h2 @click="changeFood">{{food}}</h2>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app=new Vue({
            el:"#app",
            data:{
                food:"西兰花炒蛋"
            },
            methods:{
                doIt:function(){
                    alert("hello");
                },
                changeFood:function(){
                    this.food += "好好吃!"
                }
            }
        })
    </script>
</body>

效果:

在这里插入图片描述

补充实例:

在这里插入图片描述

补充效果:

在这里插入图片描述
在这里插入图片描述

补充总结:

在这里插入图片描述

计数器-案例

  • 创建Vue实例时:el(挂载点),data(数据),methods(方法)
  • v-on指令的作用是绑定事件,简写为@
  • 方法中通过this,关键字获取data中的数据
  • v-text指令的作用是:设置元素的文本值,简写为{{}}
  • v-html指令的作用是:设置元素的innerHTML
<body>
    <div id="app">
        <div class="input-num">
            <button @click="sub">
                -
            </button>
            <span>{{num}}</span>
            <button @click="add">
                +
            </button>
        </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app=new Vue({
            el:"#app",
            data:{
                num:1
            },
            methods:{
                add:function(){
                    // console.log("add");
                    if(this.num<10){
                        this.num++;
                    }else{
                        alert("别点了,最大了")
                    }
                    
                },
                sub:function(){
                    // console.log("sub");
                    if(this.num>0){
                        this.num--;
                    }else{
                        alert("别点了,最小了")
                    }
                    
                }
            }
        })
    </script>
</body>

效果:

效果1.在这里插入图片描述效果2.
在这里插入图片描述
效果3.
在这里插入图片描述

v-show

在这里插入图片描述

实例:

    <div id="app">
        <h1 v-show="isShow">haha</h1>
        <input type="button" value="切换显示状态" @click="changeIsShow">
        <input type="button" value="累加年龄" @click="addAge">
        <h2 v-show="age>=18">hahaha</h2>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app =new Vue({
            el:"#app",
            data:{
                isShow:false,
                age:17
            },
            methods:{
                changeIsShow:function(){
                    this.isShow=!this.isShow;
                },
                addAge:function(){
                    this.age++;
                }
            }
        })
    </script>

效果:

在这里插入图片描述

v-if

在这里插入图片描述

实例:

   <div id="app">
        <input type="button" value="切换显示" @click="toggleIsShow">
        <p v-if="isShow">黑马程序员v-if</p>
        <p v-show="isShow">v-show_isShow</p>
        <h2 v-if="temperature>=35">热死啦</h2>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app=new Vue({
            el:"#app",
            data:{
                isShow:false,
                temperature:20
            },
            methods:{
                toggleIsShow:function(){
                    this.isShow=!this.isShow;
                }
            }
        })
    </script>

效果:

  • 点击按钮之前:
    在这里插入图片描述
  • 点击按钮之后:
    在这里插入图片描述

v-bind

在这里插入图片描述

实例:

 <div id="app">
        <img v-bind:src="imgSrc">
        <br>
        <img :src="imgSrc" title="imgTitle+'!!!'"
        :class="isActive?'active':''"@click="toggleActive">
        <br>
        <img :src="imgSrc" title="imgTitle+'!!!'"
        :class="{active:isActive}" @click="toggleActive">
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app= new Vue({
            el:"#app",
            data:{
                imgSrc:"http://www.itheima.com/images/logo.png",
                imgTitle:"黄玉兰",
                isActive:false
            },
            methods:{
                toggleActive:function(){
                    this.isActive=!this.isActive
                }
            }
        })
    </script>

效果:

  • 点击之前:
    在这里插入图片描述
  • 点击之后:
    在这里插入图片描述

v-for

在这里插入图片描述

实例:

<div id="app">
        <input type="button" value="添加数据" @click="add">
        <input type="button" value="移除数据" @click="remove">
        <ul>
            <li v-for="(it,index) in arr">
                {{index+1}}校区:{{it}}
            </li>
        </ul>
        <h2 v-for="item in vegetables" v-bind:title="item.name">{{item.name}}</h2>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var app=new Vue({
            el:"#app",
            data:{
                arr:["北京","上海","广州","深圳"],
                vegetables:[
                    {name:"西兰花炒蛋"},
                    {name:"玉兰炒蛋"}
                ]
            },
            methods:{
                add:function(){
                    this.vegetables.push({name:"xixihaha"});
                },
                remove:function(){
                    this.vegetables.shift();
                }
            }
        })
    </script>

效果:

在这里插入图片描述

v-model

在这里插入图片描述

实例:

<div id="app">
        <input type="button" value="修改message" @click="setM">
        <input type="text" v-model="message" @keyup.enter="getM">
        <h2>{{ 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:{
                getM:function(){
                    alert(this.message);
                },
                setM:function(){
                    this.message="玉兰";
                }
            },
        })
    </script>

效果:

在这里插入图片描述

  • 31
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值