Vue的学习

一、Vue框架
常用地指令学习:
https://cn.vuejs.org/官网地址
概述:前端领域当中有三大框架(都是开发单页面应用的框架)

Angular诞生于2009年,是由谷歌创建出来的框架

React诞生于2013年,是由facebook公司创建出来的框架

vue诞生于2014年,是由中国在校大学生尤玉溪创建出来的。
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式(JavaScript)框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。
1.1Vue框架基本使用
注意:vue它是属于前端当中的一个JavaScript框架。源码都封装到了一个尾缀为JS这样的文件里面。
因此我们需要获取源码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!--引入Vue源码(引包)-->
    <script src="./js/vue.min.js"></script>
</head>
<body>
    <!--进行页面布局-->
    <div id="app">
        <h1>我是小明呀,今年{{age}}啦!</h1>
    </div>
</body>
</html>
<script>
    //当程序中引入vue框架的时候,这个框架对外暴露了一个vue构造函数
    //通过vue构造函数创建vue类实例
    console.log(Vue);
    var vm = new Vue({
        //挂载点(将vue实例)和结构层中标签进行联系
        el:"#app",
        //vue实例数据来源
        data:{
            age:18
        }
    });
    console.log(vm);
//修改实例age属性值
vm.age=11;
vm.age=22;
</script>

结果:
在这里插入图片描述

1.2Vue框架中常用的指令
概述:Vue框架给我们提供了很多的指令,都是以v-xxxx开头(为什么是以v开头,因为是Vue提供的),Vue提供的这些指令起始都是作为标签属性直接使用;
指令是由vue提供的,主要的作用是可以操作标签(文本、样式、事件等等)
指令理解:相当于长官给士兵下达军令(我让你干什么你就干什么)

<div id='box' class='cur'>我是div</div>

1.2.1v-text
概述:可以更新标签的文本内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!--引包-->
    <script src="./js/vue.min.js"></script>
</head>
<body>
   
    <div id="app">
        <h1>下面的指令是用来操作文本的</h1>
        <p v-text="msg"></p>
        <!--横线-->
        <hr>
        <p>{{msg}}</p>
        <p v-html="msg"></p>
    </div>
</body>
</html>
<script>
    //创建vue实例
    var vm = new Vue({
        el:"#app",
        data:{
            msg:" <a href='http://www.baidu.com'>百度</a>"
        }
    })
</script>

v-text:可以更新标签的文本内容【简写的方式是双大括号】
v-html:也可以更新标签文本内容【如果渲染数据为标签形式字符串,会真的渲染为标签】
结果:
在这里插入图片描述

1.2.2v-show
概述:v-show可以控制标签的显示与隐藏,底层原理其实是通过CSS中display属性进行控制。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!--引包-->
    <script src="./js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <ul>
            <li >吃饭</li>
            <li v-show='false'>睡觉</li>
            <li>打豆豆</li>
        </ul>
    </div>
</body>
</html>
<script>
    //创建实例:
    var vm = new Vue({
        el:"#app"
    })

</script>

结果:
在这里插入图片描述
在这里插入图片描述

Vue选项卡练习:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./js/vue.min.js"></script>
</head>
<body>
   
    <div id="app">
        <button @click="add('军事')">军事</button>
        <button @click="add('新闻')">新闻</button>
        <button @click="add('直播')">直播</button>
        <ul v-show="'军事'===info">
            <li>军事</li>
            <li>军事</li>
            <li>军事</li>
            <li>军事</li>
            <li>军事</li>
            <li>军事</li>
            <li>军事</li>
            <li>军事</li>
            <li>军事</li>
            <li>军事</li>
        </ul>
        <ul v-show="'新闻'===info">
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
        </ul>
        <ul v-show="'直播'==info">
            <li >直播</li>
            <li>直播</li>
            <li>直播</li>
            <li>直播</li>
            <li>直播</li>
            <li>直播</li>
            <li>直播</li>
            <li>直播</li>
            <li>直播</li>
            <li>直播</li>
        </ul>
    </div>
</body>
</html>
<script>
    //创建实例
    var vm = new Vue({
        el: "#app",
        data:{
            info:""
        },
        //书写标签事件处理函数add
        methods:{
            //事件处理函数add
            add(a){
                //修改Vue实例属性值即可
                this.info=a;
            
        }
        }
        
    })
</script>

结果:每点击下面的按钮就会出现相应的内容
在这里插入图片描述

1.2.3v-if
概述:v-if根据属性值为真或假进行渲染标签。
注:它和v-show区别:显示与隐藏的标签(在节点树上始终是有的)
v-if:控制标签在节点数上上树、下树

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!--引包-->
    <script src="./js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <h1>你的性别是什么呀?</h1>
        <ul>
            <li v-if="'男'==sex"></li>
            <li v-else-if="'女'==sex"></li>
            <li v-else>未知</li>
        </ul>
    </div>
    
</body>
</html>
<script>
    var vm =new Vue({
        el:"#app",
        data:{
            sex:"未知"
        }
    })
</script>

结果:
在这里插入图片描述

1.2.4v-for******

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <h1>非常常用的指令v-for</h1>
        <h1>循环语句遍历数字</h1>
        <h2 v-for="item in 100">我是二级标题{{item}}</h2>
        <h1>循环语句遍历数组</h1>
        <ul>
            <li v-for="(item,index) in arr">{{item}}----{{index}}</li>
        </ul>
        <table>
            <tr v-for="row in 9">
                <td v-for="col in 9" v-show="row>=col">{{row *col}}</td>
            </tr>
        </table>
    </div>
</body>
</html>
<script>
    //创建Vue实例
    var vm= new Vue({
        el:"#app",
        data:{
            arr:['吃饭','睡觉','打豆豆']
        }
    })
</script>

结果:
在这里插入图片描述
在这里插入图片描述

1.2v-on****
概述:这个指令可以给元素绑定事件。V-on简写方式即为@;

<!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>
<script src="./js/vue.min.js"></script>
<body>
    <div id="app">
        <h1>我是计数器小案例---{{count}}</h1>
        <button v-on:click="add">单击我+1</button>
        <button v-on:click="minus">单击我-1</button>
        <p @mouseenter="haha">我绑定鼠标移动</p>
    </div>
    
</body>
</html>
<script>
    var vm = new Vue({
        el:"#app",
        data:{
            count:1
        },
        //时间处理函数的地方
        methods:{
            //加上1事件处理函数
            add(){
                this.count++;
                this.count=this.count>=10?0:this.count;
            },
            minus(){
                this.count--;
                this.count=this.count<=0?0:this.count;
            },
            haha(){
                alert("鼠标在我上面")
            }
        }
    })
</script>

在这里插入图片描述

Mehod:这里是书写标签处理函数的部分,一定要注意函数的名字务必要准确
1.2.6v-model****
概述:v-model这个指令,只能给表单元素使用【给非表单元素使用也可以,但是没有任何效果】

```javascript
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <h1>我是实例属性值{{msg}}</h1>
        <input type="text" v-model="msg">
    </div>
</body>
</html>
<script>
    //创建Vue实例
    var vm = new Vue({
        el:"#app",
        data:{
            msg:"我是实例数据"
        }
    })
</script>

(来源:马士兵教育)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值