目录

一:vue概念

二: 怎么使用vue.js

三:入门小demo

四: Vue常用指令

1. v-text指令:

2. v-html指令

3. v-on指令

4.v-show指令

5. v-if 指令

6. v-bind指令

7. v-for指令


一:vue概念

VUE 是iOS和Android平台上的一款手机视频拍摄与美化工具,允许用户通过简单的操作实现视频的拍摄、导入视频的剪辑、表现力的细调、改变滤镜、加贴纸和背景音乐等功能,轻松在手机上拍出电影大片的质感,实时记录与分享

二: 怎么使用vue.js


1)在html页面使用script引入vue.js的库即可使用。
2)使用Npm管理依赖,使用webpack打包工具对vue.js应用打包。
大型应用推荐此方案。
3)Vue-CLI脚手架
使用 vue.js官方提供的CLI脚本架很方便去创建vue.js工程雏形。

小案例:Vue.js实现hello world

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!--插值表达式,绑定vue中的data数据-->
        {{message}}
    </div>
    <script src="vue.min.js"></script>
    <script>
        //1、创建一个vue对象
        new Vue({
            el: '#app',//2、绑定vue作用的范围
            data: {//3、定义页面中显示的模型数据
                message: 'hello vue!'
            }
        })
    </script>
</body>
</html>


 

三:入门小demo

首先创建一个目录,把vue的库vue.min.js放到该目录下,然后创建一个HTML页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue.js测试程序</title>
    <script src="vue.min.js"></script><!--导入vue.js类库-->
</head>
<body>
<!--body体里面的内容是MVVM中view视图部分的内容-->
  <div id="app">
      {{name}}
  </div>
</body>
<script>
    //script里面编写MVVM中model和viewmodel中的内容
    var VM = new Vue({
        el:'#app',//vm接管了app区域的管理
        data:{//model数据
            name:'好好学习,天天向上!'
        }
    })
</script>
</html>

四: Vue常用指令

根据官网的介绍,指令是带有v-前缀的特殊属性。通过指令来操作DOM元素

1. v-text指令:

作用:获取data数据,设置标签的内容。

注意:默认写法会替换全部内容,使用插值表达式{{}}可以替换指定内容。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- v-text 获取data数据,设置标签内容,会覆盖之前的内容体-->
        <h2 v-text="msg">天天好心情</h2> 
        <!-- 使用插值表达式,不会覆盖 -->
        <h2>阿红:{{msg}}</h2>
        <!-- 拼接字符串 -->
        <h2 v-text="msg+1"></h2>
        <h2 v-text="msg+'abc' "></h2>
    </div>
</body>
<script>
    var obj = new Vue({
        el: "#app",
        data: {
            "msg": "学习vue的第一天!"
        }
    });
</script>
</html>

 

2. v-html指令

作用:设置元素的innerHTML(可以向元素中写入新的标签)


 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- 普通获取文本 -->
        <h2>{{msg}}</h2>
        <h2 v-html="msg"></h2>
        <!-- 设置元素的innerHTML -->
            <!--  v-text只能获取该值 -->
        <h2 v-text="url"></h2>
            <!-- v-html内联html标签 -->
        <h2 v-html="url"></h2>

    </div>
</body>
<script>
    var obj = new Vue({
        el: "#app",
        data:{
            "msg": "java程序员",
            "url": "<a href='https://www.baidu'>百度一下</a>",
        } ,
    })
</script>
</html>

3. v-on指令

作用:为元素绑定事件,比如:v-on:click,可以简写为@click=“方法名”

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- 使用v-on 绑定click点击事件 -->
        <input type="button" value="点击按钮" v-on:click="show1" />
        <!--简写方式: 使用@符号也可以绑定 -->
        <input type="button" value="点击按钮2" @click="show2" />
        <!-- 双击事件 -->
        <input type="button" value="双击事件" @dblclick="show3" />

        <h2>{{food}}</h2>
    </div>

</body>
<script>
    var obj =  new Vue({
        el:"#app",
        data: {
            "food": "麻婆豆腐",
        },
        methods: {
            show1:function() {
                alert("今天不学习,明天变垃圾!");
            },
            show2:function(){
                alert("天天好心情");
            },
            show3:function(){
                console.log(this.food);
                this.food += "真好吃";
            },
        },
    });
</script>
</html>

4.v-show指令

作用:v-show指令,根据真假值,切换元素的显示状态

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app" >
        <input type="button" value="切换" @click="change" />
        <img v-show="flag" src="../img/car.gif">
    </div>
</body>
    <script>
        var obj = new Vue({
            el: "#app",
            data: {
                flag: true,
            },
            methods:{
                change:function(){
                    this.flag = !this.flag;
                },
            }
        });
    </script>
</html>

5. v-if 指令

作用:根据表达式的真假,切换元素的显示和隐藏(操纵dom元素)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app">
        <input type="button" value="切换" v-on:click="changeShow" />
        <img v-if="isShow" src="../img/car.gif"/>
    </div>
</body>
    <script>
        var obj = new Vue({
            el: "#app",
            data: {
                isShow: true,
            },
            methods:{
                changeShow: function(){
                    this.isShow = !this.isShow;
                },
            }
        });
    </script>
</html>

6. v-bind指令

作用:设置元素的属性(比如:src,title,class)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js" ></script>
</head>
<body>
    <div id="app">
        <img src="../img/lagou.jpg" />
        <!-- 使用v-bind设置src属性值 -->
        <img v-bind:src="imgSrc" alt="" />
         <!-- 简写 设置title -->
        <img :src="imgSrc" :title="imgTitle" />
        <!-- 设置class -->
        <div :style="{fontSize: size + 'px'}">v-bind指令</div>
    </div>
</body>
    <script>
        var obj = new Vue({
            el: "#app",
            data: {
                imgSrc: "../img/lagou.jpg",
                imgTitle: "我好看吗",
                size: 50,
            },
        });
    </script>
</html>

7. v-for指令

作用:根据数据生成列表结构,相当于java里的for循环

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="../js/vue.js"></script>
  </head>
  <body>
    <div id="app">
        <input type="button" value="增加人员信息" v-on:click="add" />
        <input type="button" value="删除人员信息" v-on:click="remove" />
      <h2 v-for="item in city">城市:{{item}}</h2>
      <h2 v-for="(item,index) in city">序号:{{index}} 城市:{{item}}</h2>
      <ul>
        <li v-for="(item,index) in people">{{index}}编号:{{item.num}}姓名:{{item.name}}年龄:{{item.age}}</li>
      </ul>
    </div>
  </body>
  <script>
    var obj = new Vue({
      el: "#app",
      data: {
        city: ["上海", "北京", "贵州"],
        people: [
          { num: "007", name: "小李飞刀", age: "22" },
          { num: "003", name: "马艳三", age: "18" },
          { num: "010", name: "王菲", age: "33" },
        ],
      },
      methods: {
          add:function(){
              //push 添加
              this.people.push({ num: "001", name: "马云", age: "52" })
          },
          remove:function(){
              this.people.shift();//从第一个元素开始删除
          }
      }
    });
  </script>
</html>

更多推荐

Vue基础知识总结 1:菜鸟入门