Vue基础

Vue简介:

1.vue是javaScript框架
2.简化Dom操作
3.响应式的数据驱动

第一个vue程序:

el:挂载点
data:数据对象

<body>
    <div id="app">
        {{msg}}
        <br>
        {{student.name}} {{student.age}} //对象.属性 
        <br>
        {{school[0]}} {{school[1]}} {{school[2]}} //对象[num]
    </div>
</body>
<script>
    new Vue({ // 1.创建vue实例对象
        el: "#app", // 2.设置el属性
        data: { // 3. data属性
            // 字符串
            msg: "hello vue!",
            // 对象
            student: {
                name: "王一",
                age: "21"
            },
            // 数组
            school: ["清华大学", "北京大学", "复旦大学"]
        }
    })
     //输出:hello vue!
	//王一 21
   //清华大学 北京大学 复旦大学
</script>

vue指令:

1.内容绑定,事件绑定
v-text v-html v-on基础
2.显示切换,属性绑定
v-show v-if v-bind
3.列表循环,表单元素绑定

v-text

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

<body>
    <div id="app">
        <h2 v-text="msg">显示</h2> //所有内容都会被替换成msg对应的内容
        <h2>显示{{msg}}</h2> //只有差值表达式{{}}中内容会被替换msg对应的内容
        <h2 v-text="test+'世界'">显示</h2> //字符串拼接
    </div>
</body>
<script>
    new Vue({
        el: "#app",
        data: {
            msg: "hello vue",
            test: "你好"
        }
    })
</script>

在这里插入图片描述

v-html

这里是引用
在这里插入图片描述

<body>
    <div id="app">
        <p v-html="msg"></p>
        <p v-text="msg"></p>
    </div>
</body>
<script>
    new Vue({
        el: "#app",
        data: {
            msg: "<a href='http: //www.baidu.com'>网址</a>"
        }
    })
</script>

在这里插入图片描述

v-on基础

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

<body>
    <div id="app">
        <input type="button" value="v-on指令" v-on:click="doIt">
        <input type="button" value="@简写" @click="doIt">
        <input type="button" value="双击事件" @dblclick="doIt">
        <h2 @click="changeLike">{{like}}</h2>
    </div>
</body>
<script>
    new Vue({
        el: "#app",
        data: {
            like: "足球"
        },
        methods: {
            doIt: function () {
                alert("hello vue!")
            },
            changeLike: function () {
                this.like = "乒乓球"
            }
        }
    })
</script>

v-on补充

这里是引用
在这里插入图片描述

<body>
    <div id="app">
        <input type="button" value="点击" @click="doIt(666,'老铁')">
        <input type="text" @keyup.enter="sayHi">
    </div>
</body>
<script>
    new Vue({
        el: "#app",
        methods: {
            doIt: function (a, b) {
                console.log("hello vue");
                console.log(a);
                console.log(b);
            },
            sayHi: function () {
                alert("吃了没")
            }
        }
    })
</script>

计数器

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

<body>
    <!-- 计数器 -->
    <div id="app">
        <div class="input-num">
            <button @click="sub">-</button>
            <span>{{num}}</span>
            <button @click="add">+</button>
        </div>
    </div>
</body>
<script>
    new Vue({
        el: "#app",
        data: {
            num: 0
        },
        methods: {
            add: function () {
                this.num++
            },
            sub: function () {
                this.num--
            }
        }
    })
</script>

v-show

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

<body>
    <!-- 切换显示 -->
    <div id="app">
        <input type="button" value="点击切换" @click=" changeShow">
        <img v-show="isShow" src="./images/1.jpg">
    </div>
</body>
<script>
    new Vue({
        el: "#app",
        data: {
            isShow: false
        },
        methods: {
            changeShow: function () {
                this.isShow = !this.isShow
            }
        }
    })
</script>

v-if

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

<body>
    <div id="app">
        <input type="button" value="切换显示" @click="toggleIsShow">
        <p v-if="isShow">hello v-if</p>
    </div>
</body>
<script>
    new Vue({
        el: "#app",
        data: {
            isShow: false
        },
        methods: {
            toggleIsShow: function () {
                this.isShow = !this.isShow
            }
        }
    })
</script>

v-bind

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

<body>
    <div id="app">
        <img v-bind:src="imgSrc" v-bind:title="imgTitle+'!!!'" v-bind:class="isActive?'active':''" @click="toggleActive">
        <img :src="imgSrc" :title="imgTitle+'!!!'" :class="{active:isActive}" @click="toggleActive">

    </div>
</body>
<script>
    new Vue({
        el: "#app",
        data: {
            imgSrc: "./images/1.jpg",
            imgTitle: "hello vue",
            isActive: false
        },
        methods: {
            toggleActive: function () {
                this.isActive = !this.isActive
            }
        }
    })
</script>

v-for

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

<body>
    <div id="app">
        <input type="button" value="添加数据" @click="add">
        <input type="button" value="移除数据" @click="remove">
        <ul>
            <li v-for="(item,index) in arr">
                {{index+1}}{{item}}
            </li>
        </ul>
        <h2 v-for="(item,index) in obj">
            {{item.name}}{{item.age}}
        </h2>
    </div>
</body>
<script>
    new Vue({
        el: "#app",
        data: {
            arr: ["北京", "上海", "广州"],
            obj: [
                { name: "王一" },
                { age: 21 },
            ]
        },
        methods: {
            add: function () {
                this.obj.push({ name: "张三" }, { age: 31 })
            },
            remove: function () {
                this.obj.shift()
            }
        }
    })
</script>

v-model

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

<body>
    <div id="app">
        <input type="text" v-model="msg" @keyup.enter="getM()">
        <h2>{{msg}}</h2>
        <input type="button" value="修改" @click="setM()">
    </div>
</body>
<script>
    new Vue({
        el: "#app",
        data: {
            msg: "hello vue!!!"
        },
        methods: {
            getM() {
                alert(this.msg)
            },
            setM() {
                this.msg = "你好"
            }
        }
    })
</script>

v-pre

不会渲染,直接以差值表达式形式显示

v-once

只渲染一次,后期数据有变化也不再渲染

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值