Vue基础知识学习

Vue前端框架

一、Vue基础

1、导入包 开发板的Vue.js

2、创建Vue的实例对象,设置el属性和data属性 #–>id选择器

3、使用简洁的模板语法把数据渲染到页面上

el是挂载点

作用:设置Vue实例挂载

注意:el的使用范围是el挂载对象以及他的后代

el可以用其他的选择器 eg.类选择器class = “div1” el = ‘.div1’ 标签选择器 el = ‘div’ ,但是建议使用id选择器,因为我们一般默认id是唯一的 id = “div1” el = ‘#div1’

可以选择除div外的其他标签,但是不能是html和body 一般用div 因为其他标签还会有额外的样式

<body>

<div id="song">
          {{message}}
          <div>{{message}}</div>
 </div>
<script>
   var song = new Vue({
  el : '#song',
  data:{
   message:'宋亚轩大帅哥!'
  }
  })
</script>

</body>

data是数据对象,在data中可以写复杂的数据类型 eg.数组,对象等等

<body>
    <div id="song">
          {{message}}
          <div>{{message}}</div>
          <h2>
              {{own.dog}}&nbsp;&nbsp;{{hobby}}
          </h2>
          <ul>
              <li>{{ability[0]}}</li>
              <li>{{ability[1]}}</li>
          </ul>
      </div>
<script>
            var song = new Vue({
            el : '#song',
            data:{
            message:'宋亚轩大帅哥!',
            own:{
            dog:'鼠标',
            hobby:'钢琴'
            },
            ability:['唱歌','跳舞','吉他','rap']
            }})
        </script>
</body>

二、本地

a、内容绑定,事件绑定

1、v-text

直接放到标签里面当属性用就可以 但是这个是从data里面拿数据,会将原有的要显示的内容进行覆盖,可以进行字符串的拼接

使用差值表达式{{}} 可以进行部份内容的替换

<body>
<div id = 'app'>
        <h2 v-text="message+'0304'">帅气!!!</h2>
        <h2 v-text="logo+'0304'">帅气!!!</h2>
        <h2>{{message+"0304"}}帅气!!!</h2>
        <div v-text="link"></div>
        <div v-html="link"></div>
</div>
    <div id = 'app'>
        <h2 v-text="message+'0304'">帅气!!!</h2>
        <h2 v-text="logo+'0304'">帅气!!!</h2>
        <h2>{{message+"0304"}}帅气!!!</h2>
    </div>
    <script>
var app = new Vue({
    el:'#app',
    data:{
        message:'小宋老师',
        logo:'拾积'
    }
        })
</script>
</body>

2、v-html

这个属性是将内容解析为html语言 ,而v-text是将内容解析成文本

<body>

<div id = 'app'>
        <h2 v-text="message+'0304'">帅气!!!</h2>
        <h2 v-text="logo+'0304'">帅气!!!</h2>
        <h2>{{message+"0304"}}帅气!!!</h2>
        <div v-text="link"></div>
        <div v-html="link"></div>
</div>
<script>
    var app = new Vue({
        el:'#app',
        data:{
            message:'小宋老师',
            logo:'拾积',
            link:"<a href='https://www.baidu.com/'>百度</a>"
        }
            })
</script>

</body>

3、v-on

这个是用来获取方法的 绑定的方法定义在methods属性中

使用了v-on之后绑定的事件类型不用写on了 还可以直接使用简写版本 @+事件类型+函数名

如果要获取数据可以用this这个关键字来获取

也可以向调用的方法里面进行传参

<body> 

<div id = "app">
        <input type="button" value="v-on点击事件" v-on:click="Doit">
        <input type="button" value="v-on点击事件简写" @click="Doit">
        <input type="button" value="用this关键字改变值-双击" @dblclick="changeValues">
        <h2  @dblclick="changeValues">{{ name }}</h2>
</div>

<script>
    var app = new Vue({
        el:"#app",
        data:{
            message:'小宋老师',
            name:"宋祝福",
            logo:'拾积',
            link:"<a href='https://www.baidu.com/'>百度</a>"
        },
        methods:{
            Doit:function(){
                alert("今天也是美好的一天啊");
            },
            changeValues:function(){
                this.name+="超级帅!"
                console.log(this.name)
            }
                    },
        })
    </script>

</body>
b、显示切换,属性绑定

1、v-show

这个是根据后面的布尔值来判断要不要显示元素的 可以是data里面的某个属性的值,也可以在标签内部直接写条件语句,然后再根据值的大小来判断该标签里面的内容要不要显示

实际上是操作标签的style的display属性是否为none

<body>

<image src="https://tse4-mm.cn.bing.net/th/id/OIP-C.YHUCwjfCGbpmI42bcMyIXwHaON?w=180&h=346&c=7&r=0&o=5&dpr=1.5&pid=1.7"

    v-show="isShow"></image><image src="https://tse4-mm.cn.bing.net/th/id/OIP-C.YHUCwjfCGbpmI42bcMyIXwHaON?w=180&h=346&c=7&r=0&o=5&dpr=1.5&pid=1.7"

    v-show="message!=0"></image>`

</body>

2、v-if

他和v-show是很像,都是通过表达式真假来切换元素的显示状态

但是与v-show不同的是v-if是通过操作dom元素来切换显示状态的 但是他的消耗会比较大

3、v-bind

为元素绑定属性 后面可以加一些属性值 也可以添加表达式判断元素的显示状态 也可以直接简化为 :

<body>

<img v-bind:src="imgSrc" :title="Image+'!!!'"></img>
        <img :src="imgSrc" :title="Image+'!!!'" :class="isActive? 'active':''"></img>
        <img :src="imgSrc" :title="Image+'!!!'" :class="{active:isActive}"></img>

</body>

imgSrc:"https://tse2-mm.cn.bing.net/th/id/OIP-C.qwWLNqPeRhBzcLJBeu76jgHaEi?w=195&h=119&c=7&r=0&o=5&dpr=1.5&pid=1.7",

Image:'宋啊宋',

isActive:true

c、列表循环,显示表单绑定

1、v-for

作用:根据数据生成列表元素 经常和数组、对象一起使用 语法:(item,index) in数据

<body>

<div id="app">
        <input type="button"@click="add" value="添加数据">
        <input type="button" @click="remove" value="删除数据">
        <ul>
            <li v-for="item in foods">{{ item }}</li>
        </ul>
        <h2 v-for="(item,index) in schools">{{ item.name}}</h2>
    </div>

<script>
        var song = new Vue({
            el:'#app',
            data:{
                foods:['苹果','梨子','西瓜','香蕉'],
                schools:[
                {name:'中南大学',position:'湖南长沙'},
                {name:'湖南大学',position:'湖南长沙'},
                ]    
            },
            methods:{
                add:function(){
                   this.schools.push({name:'重庆大学',position:'重庆'});
                },
                remove:function(){
                    this.schools.shift();
                }
            }
        })
    </script>

</body>

2、v-model

作用: 便捷的设置和获取表单的值

绑定的数值与表单元素的值是相互关联的,可以互相影响,互相修改 双向绑定

方便我们获取用户输入值

三、网络应用

axios的基本使用

(导入包)

<body>
    <input type="button" value="post请求" class="post">

    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script>
        /*
         接口:用户注册
         请求地址:https://autumnfish.cn/api/user/reg
         请求方法:post
         请求参数:username(用户名,字符串)
         响应内容:注册成功或失败
        */
       document.querySelector(".post").onclick = function(){
           axios.post("https://autumnfish.cn/api/user/reg",
           {username:"宋鼠标"})
           .then(function(response){
               console.log(response);
           },function(err){
               console.log(err);
           })
       }
    </script>

</body>

axios+vue

要先导入两个包,然后在写methods里面可以嵌套写axios,引用接口

<body>   

<div id="app">
    <input type="button" value="get获取" class="get" @click="getjokes">
    <p>{{ jokes }}</p>
    </div>

<script>
        /*
         接口:获取笑话
         请求地址:https://autumnfish.cn/api/joke
         请求方法:get
         请求参数:无
         响应内容:返回笑话
        */
       var app = new Vue({
           el:'#app',
           data:{
               jokes:'好笑的笑话'
           },
           methods:{
               getjokes:function(){
                var that = this;
                console.log(that.jokes);
                axios.get("https://autumnfish.cn/api/joke").then(
                    function(response){
                         console.log(response);
                        that.jokes = response.data;
                        },
                function(err){
                    console.log(err);
                }
            )
           }
       }
   })
</script>

</body>

四、综合应用

歌曲播放实战

点击歌曲播放or暂停实际上就是切换或更改audio中src的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值