Vue前端框架

1.什么是Vue

官方给出的概念:Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的前端框架

2.Vue框架的特性

主要体现在如下两方面:

             ① 数据驱动视图

             ② 双向数据绑定

3.Vue的基本使用

3.1 Vue的基本使用步骤:

① 导入 vue.js 的 script 脚本文件

② 在页面中声明一个将要被 vue 所控制的 DOM 区域

③ 创建 vm 实例对象(vue 实例对象)


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue的基本使用</title>
</head>
<body>
    <!--1.导入vue组件-->
    <script src="libs/vue-2.6.12.js"></script>
    <!--2.创建一个被控制的dom区域-->
    <div id="app">{{username}}</div>

    <script>
        //3.在script里面创建一个vue实例
        let app = new Vue({
            el:'#app',
            data:{
                username:'山鬼谣'
            }
        });
    </script>
</body>
</html>

3.2. 基本代码与 MVVM 的对应关系

el指向的选择器就是View的视图区域,data指向的对象就是Model数据源,new Vue()构造函数得到的vm对象就是ViewModel

4.vue 的指令与过滤器

4.1. 指令的概念 指令(Directives)是 vue 为开发者提供的模板语法,用于辅助开发者渲染页面的基本结构。

vue 中的指令按照不同的用途可以分为如下 6 大类:

① 内容渲染指令

② 属性绑定指令

③ 事件绑定指令

④ 双向绑定指令

⑤ 条件渲染指令

⑥ 列表渲染指令

4.1.1 内容渲染指令 :内容渲染指令用来辅助开发者渲染 DOM 元素的文本内容。

常用的内容渲染指令有如下 3 个:v-text 指令和插值表达式只能渲染纯文本内容。如果要把包含 HTML 标签的字符串渲染为页面的 HTML 元素,则需要用到 v-html 这个指令

  • v-text
  • {{ }}
  • v-html

4.1.2属性绑定指令 v-bind

如果需要为元素的属性动态绑定属性值,则需要用到 v-bind 属性绑定指令。用法示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性绑定指令v-bind</title>
</head>
<body>
    <script src="libs/vue-2.6.12.js"></script>
    <div id="app">
        <!--全写法-->
<!--
        <input type="text" v-bind:placeholder="inputValue"><br/>
-->
        <!--简写写法-->
        <input type="text" :placeholder="inputValue"><hr/>
        <!--<img v-bind:src="imgSrc" alt="" />-->
        <!--图片绑定的简写-->
        <img :src="imgSrc" alt="">
    </div>

    <script>
        const app = new Vue({
            el:"#app",
            data:{
                // 文本框的占位符内容
                inputValue:"请输入姓名",
                imgSrc:"images/3.gif"
            }
        });
    </script>
</body>
</html>

4.1.3 事件绑定指令 v-on

vue 提供了 v-on 事件绑定指令,用来辅助程序员为 DOM 元素绑定事件监听。由于 v-on 指令在开发中使用频率非常高,因此,vue 官方为其提供了简写形式(简写为英文的 @ )

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件绑定指令v-on</title>
</head>
<body>
    <script src="libs/vue-2.6.12.js"></script>
    <div id="app">
        <h3>count 的值为:{{count}}</h3>
        <!--<button v-on:click="addCount">+1</button>-->
        <!--简写方式  绑定事件并传参-->
        <button @click="addCount(10)">+10</button>
    </div>
    <script>
        const app = new Vue({
            el:"#app",
            data:{
                count:0
            },
            methods:{
                addCount(step){
                    // this 表示当前 new 出来的 VM 实例对象
                    // 通过 this 可以访问到 data 中的数据
                    this.count+=step;
                }
            }
        });
    </script>
</body>
</html>

4.1.4 双向绑定 v-model

 vue 提供了 v-model 双向数据绑定指令,用来辅助开发者在不操作 DOM 的前提下,快速获取表单的数据。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>v-model</title>
</head>
<body>
    <script src="libs/vue-2.6.12.js"></script>
    <div id="app">
        <p>{{username}}</p>
        <input type="text" v-model="username">

        <p>选择的省份是:{{province}}</p>
        <select v-model="province">
            <option value="">请选择</option>
            <option value="hb">河北</option>
            <option value="hn">湖南</option>
            <option value="sh">上海</option>
        </select>
    </div>

    <script>
        const app = new Vue({
            el:"#app",
            data:{
                username:"",
                //省份
                province:""
            }
        });
    </script>
</body>
</html>

 4.1.5 条件渲染 v-if v-show

 条件渲染指令用来辅助开发者按需控制 DOM 的显示与隐藏。条件渲染指令有如下两个,分别是: v-if v-show

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>条件渲染v-if和v-show</title>
</head>
<body>
<div id="app">
    <input type="button" value="切换显示状态" @click="changeStatus"><hr/>
    <!--直接删除img标签-->
    <img v-if="flag" src="images/1.png">
    <!--不会删除标签只会改变样式,display:none-->
    <img v-show="flag" src="images/1.png">
    <p>{{age}}</p>
    <input type="button" value="年龄累加" @click="addAge">
</div>

<script src="libs/vue-2.6.12.js"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
        // flag 用来控制元素的显示与隐藏
        // 值为 true 时显示元素
        // 值为 false 时隐藏元素
            flag: false,
            age:17
        },
        methods:{
            changeStatus(){
                this.flag=!this.flag
            },
            addAge:function () {
                this.age++;
            }
        }
    })
</script>

</body>
</html>

 v-if 和 v-show 的区别:

实现原理不同: v-if 指令会动态地创建或移除 DOM 元素,从而控制元素在页面上的显示与隐藏; v-show 指令会动态为元素添加或移除 style="display: none;" 样式,从而控制元素的显示与隐藏。

性能消耗不同: v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。 如果需要非常频繁地切换,则使用 v-show 较好 如果在运行时条件很少改变,则使用 v-if 较好

v-else-if 指令,顾名思义,充当 v-if 的“else-if 块”,可以连续使用:

4.1.6:列表渲染v-for

vue 提供了 v-for 指令,用来辅助开发者基于一个数组来循环渲染相似的 UI 结构。 v-for 指令需要使用 item in items 的特殊语法,

其中: items是待循环的数组

           item是当前的循环项

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>v-for列表渲染指令</title>
</head>
<body>
    <script src="libs/vue-2.6.12.js"></script>
    <div id="app">
        <ul>
            <li v-for="(item,id) in list">id是:{{item.id}}, 姓名是:{{item.name}}</li>
        </ul>
    </div>
    <script>
        const app = new Vue({
            el:"#app",
            data:{
                list:[
                    {id:"01",name:"李白"},
                    {id:"02",name:"杜甫"}
                ]
            }
        });
        
    </script>
</body>
</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值