欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第一节课,科普Vue

程序员文章站 2024-02-10 09:11:28
...

[TOC]

说在前面

以下描述为了便于理解,都采用java、c/c++的描述方式,便于理解(虽然可能不会到位)

vue介绍

套话不多说,粗浅的可以认为它是一个用来开发web的框架

接入方式-CDN接入

  • 开发版本:

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

  • 生产版本

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

初始化VUE

var app= new Vue({
        el: '#app',
        data: {
            msg: "Hello Suning",
        }
    })

1、el:可以理解为vue的作用域,可以看到例子绑定了一个id为app的节点

2、data:vue自带的一个属性,里面放置数据集,可以是map、array、string、bool等

3、调用Vue()的构造函数实例化,并赋值给app

下面是id为app的一个dom节点

<div id="app">
</div>

hello,word

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        {{msg}}
    </div>
</body>
<script>
    var app= new Vue({
        el: '#app',
        data: {
            msg: "Hello Suning",
        }
    })
</script>
</html>

1、{{message}},直接就可以显示出message的值,类似字符串模板,并且都是响应式的

2、在浏览器控制台改变message的值,html渲染的页面也会随之改动

v-bind指令

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app" v-bind:title=msg>
        {{msg}}
    </div>
</body>
<script>
    var app= new Vue({
        el: '#app',
        data: {
            msg: "Hello Suning",
        }
    })
</script>
</html>

1、vue所有的指令都是"v-"开头

2、<div id="app" v-bind:title=msg>的意思是将特性title和数据msg进行绑定,让他们保持一致

3、在浏览器尝试下,改变msg的值,html里面的title同样会发生变化

条件if

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app" v-bind:title=msg v-if=isShow>
        {{msg}}
    </div>
</body>
<script>
    var app= new Vue({
        el: '#app',
        data: {
            msg: "Hello Suning",
            isShow:false
        }
    })
</script>
</html>

1、同样v-if也是vue的指令

2、v-id后面跟的是数据

3、打开浏览器看下id为app的这个div标签,如果v-if条件为真是怎么样,v-if条件为假又会是怎么样

4、如果把v-if换成指令v-show又会是怎么样

循环for

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app" v-bind:title=msg v-if=isShow v-for="person in arrayData">
        {{person}}
    </div>
</body>
<script>
    var app= new Vue({
        el: '#app',
        data: {
            msg: "Hello Suning",
            isShow:true,
            arrayData:[{name:"小明"},{name:"小鹏"},{name:"小飞"},{name:"小涛"}]
        }
    })
</script>
</html>

1、指令v-for

2、跟高级语言中的forin一样

3、可以理解为

for(id obj in arrayData)
{
    printf(obj.name);
}

按钮事件v-on

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app" v-bind:title=msg v-if=isShow>
            <button v-for="person in arrayData" v-on:click="clickButton($event)" v-bind:id=person.name>
                {{person.name}}
            </button>
    </div>
</body>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            msg: "Hello Suning",
            isShow: true,
            arrayData: [{ name: "小明" }, { name: "小鹏" }, { name: "小飞" }, { name: "小涛" }]
        },
        methods:{
            clickButton:function(event){
                alert(event.target.id);
            }
        }
    })
</script>
</html>

1、v-on:click="clickButton($event)"

2、v-on是用于绑定事件的指令

3、触发事件是click

4、执行的方法是clickButton

5、参数是$event,参数是啥可以自己控制台打印

6、在Vue初始化的时候这里多了一个methods,里面是用来放方法的

vue-model

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app" v-bind:title=msg v-if=isShow>
            <button v-for="person in arrayData" v-on:click="clickButton($event)" v-bind:id=person.name>
                {{person.name}}
            </button>
            <input v-model=msg>
    </div>
</body>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            msg: "Hello Suning",
            isShow: true,
            arrayData: [{ name: "小明" }, { name: "小鹏" }, { name: "小飞" }, { name: "小涛" }]
        },
        methods:{
            clickButton:function(event){
                alert(event.target.id);
            }
        }
    })
</script>
</html>

1、v-model是用来双向绑定,绑定了input的value和数据msg

2、何为双向绑定,控制台试试app.msg=1改变,html页面也随之改变,这个跟上面的例子一样

3、改变html上的input里面的值,控制台打印app.msg也会发生改变

4、数据层和视图层双向绑定

模板component

自己预习