美文网首页
vuejs基础

vuejs基础

作者: JK酱 | 来源:发表于2018-10-30 08:35 被阅读0次

vue.js框架

一、什么是vue.js?

1.它是一套用于构建用户界面的框架,只关注视图,不仅易于上手,还便于与第三方库或既有项目整合。(vue有配套的第三方类库,可以整合起来做大型项目的开发),在vue中有一个核心的概念,就是不用再操作DOM元素,让程序员有更多的时间去关注业务逻辑。

2.框架和库的区别

框架:是一套完整的解决方案,对项目的侵入性太大,如果需要更换框架,则需要重新构架整个项目。

库(插件):提供某一个小功能,对项目的入侵性较小,如果某个库无法完成某些需求,则很容易切换到其他库。

3.Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。Vue.js借鉴了Angular以及React的一些核心思想,综合各自的长处进行了操作以及性能等方面的优化,进而打造出一款性能更优,学习更容易的MVVM框架。它的作者是:尤雨溪

二、vue对比angularjs

1、vue在设计之初参考了很多angularjs的思想

2、vue相对比与angular比较简单

3、 vue相对比与angular比较小巧,运行速度快

4、 vue与angular数据绑定都可以用{{}}

5、vue指令用v-xxx angularjs用ng-xxx6、vue数据放在data对象里面,angular数据绑定到$scope对象上

三、vue对比react

1、vue与react都使用 virtual DOM

2、vue与react都提供了组件化的视图组件

3、 vue与react将注意力集中保持在核心库,有丰富的插件库

4、react使用jsx渲染页面,vue使用更简单的模版

5、vue比react运行速度更快

四、计算属性

计算属性 放在computed:{//函数} 效率高 methods设置效率低

为什么要用计算属性

1.在模板中表达式非常便利,但是它们实际上只用于简单的操作。所有计算属性的函数都需要返回值

2.模板是为了描述视图的结构。在模板中放入太多的逻辑会让模板过重且难以维护。

这就是为什么 Vue.js 将绑定表达式限制为一个表达式。如果需要多于一个表达式的逻辑,应当使用计算属性。 在 Vue.js 中,你可以通过 computed 选项定义计算属性

3.作用:用于计算一些复杂逻辑,最终带有返回值的函数,用于在HTML里面作展示的,用计算属性来定义、声明

计算金额
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="vue.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="out">

            <div>单价:<input type="text" v-model="ipt"/></div>
            <div>数量:<input type="text" v-model="ipt1"/></div>
            <div>运费:{{yunfei}}</div>
            <div>金额:{{cheng}}</div>
        </div>
    </body>
    <script type="text/javascript">
        var vm=new Vue({
            el:"#out",
            data:{
                ipt:"",
                ipt1:"",
                yunfei:10
            },
            computed:{

                cheng(){
                    if(this.ipt*this.ipt1>88){
                        this.yunfei=0;
                    }else{
                        this.yunfei=10;
                    }
                    return this.ipt*this.ipt1+this.yunfei
                }
            }
        })
    </script>
</html>
第二个例子
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="vue.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="app">
        <input type="text" v-model="ipt"/>
        <ul>
            <li v-for="item in list">{{item}}</li>
        </ul>
        </div>
    </body>
    <script type="text/javascript">
        var vm=new Vue({
            el:"#app",
            data:{
                ipt:'',
                arr:["苹果","香蕉","香水","菠萝","菠菜"]
            },
            computed:{
                list(){
                    var arr1=[];
                    this.arr.map(function(item){
                        if(item.indexOf(this.ipt)!=-1){
                            arr1.push(item);
                        }
                    }.bind(this))
                    return arr1;
                }
            }
        })
    </script>
</html>

五、监听

1.全局写法

第一种写法vm.$watch(‘’,function( newvalue,oldvalue){ }

2.内部写法

)第二种写法 直接在vue初始化中通过watch{msg:function(newvalue,oldvalue){}}

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="vue.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="out">
            <h1>监听</h1>
            <input type="text" v-model="ipt"/>
        </div>
    </body>
    <script type="text/javascript">
        var vm=new Vue({
            el:"#out",
            data:{
                ipt:''
            },
            watch:{
                'ipt':function(a,b){
                    console.log(a)
                }
            }
        })
        //监听的第一种写法
        vm.$watch('ipt',function(a,b){//第一个参数指坚挺的数据最后变更以后得到最终的那个值,第二个参数指本次变更之前的上一次的旧值
            console.log(a);
            console.log(b);
        })
    </script>
</html>

六、过滤器

Vue.filter(‘过滤器名字’,function(value){ return //具体操作

})

Vue2.0自定义过滤器,vue1.0提供内置

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="vue.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <div id="out">
            <h1>监听</h1>
            <input type="text" v-model="ipt"/>

        <hr />
        <h1>过滤器</h1>
        <p>{{num | cun}}</p>

        <hr />
        <ul>
            <li v-for="item in arr">{{item.status | ha}}</li>
        </ul>
        </div>
    </body>
    <script type="text/javascript">
        Vue.filter('cun',function(value){
            return '$'+value
        })

        Vue.filter('ha',function(value){
             if(value==0){
                return "qq";
             }else if(value==1){
                return "ww";
             }else if(value==2){
                return "ee";
             }else if(value==3){
                return "rr";
             }
        })

        var vm=new Vue({
            el:"#out",
            data:{
                ipt:'',
                num:10,
                arr:[
                    {name:'衣服',status:0},
                    {name:'帽子',status:1},
                    {name:'鞋子',status:2},
                    {name:'裤子',status:3}
                ]
            },
            watch:{
                'ipt':function(a,b){
                    console.log(a)
                }
            }
        })
        //监听的第一种写法
        vm.$watch('ipt',function(a,b){//第一个参数指坚挺的数据最后变更以后得到最终的那个值,第二个参数指本次变更之前的上一次的旧值
            console.log(a);
            console.log(b);
        })
    </script>
</html>

七、vue里提供的ajax交互

获取数据
  1. 应用fetch或axios 获取数据 axios 是vue2.0

  2. axios是vue全家桶技术之一,fetch是独立的一个交互方法,它在任何一个框架,任何一个项目里面都可以单独去使用,跟vue没有关系,目前主流前后交互的方法

  3. vue全家桶:vue、axios、vue-router、vuex

    <!DOCTYPE html>
    <html>
     <head>
         <meta charset="UTF-8">
         <title></title>
         <script src="vue.js" type="text/javascript" charset="utf-8"></script>
         <!--<script src="https://cdn.bootcss.com/axios/0.19.0-beta.1/axios.min.js"></script>-->
         <script src="https://cdn.bootcss.com/fetch/3.0.0/fetch.min.js"></script>
     </head>
     <body>
         <div id="out">
             <h1>axios</h1>
             <button @click="tap()">获取数据</button>
    
             <!--<ul>
                 <li v-for="item in arr">{{item.pname}}</li>
             </ul>
             -->
         </div>
     </body>
     <script type="text/javascript">
         var vm=new Vue({
             el:"#out",
             data:{
                 arr:[]
             },
             methods:{
                 tap(){
                     var _this=this;
    //                   axios({
    //                       methods:"get",
    //                       url:'http://jx.xuzhixiang.top/ap/api/detail.php',
    //                       params:{id:7615}//传参
    //                   }).then(function(data){
    //                       console.log(data.data)
    //                       //_this.arr=data.data.data
    //                   }).catch(function(err){
    //                       console.log(err)
    //                   })
    
    
    
    
               fetch('http://jx.xuzhixiang.top/ap/api/productlist.php')
             .then(function(data){
                 //console.log(data)
                 return data.json()
             })
             .then(function(data){
                 console.log(data)
             })
    
    
    
    
                 }
             }
         })
     </script>
    </html>
    

    以上都是vue2.0的交互方法

    如果接口里面是jsonp类型的数据,就要用fetch-jsonp

    fetch提供了一个插件叫fetchjsonp

  4. 下面是1.0
    提供的核心方法是vue-resource,专门处理类似于百度接口这种类型的数据

    <script src="https://cdn.jsdelivr.net/npm/vue-resource@1.3.4"></script>

相关文章

  • VueJS基础

    什么是Vue? 一款非常优秀的前端 JavaScript 框架,由尤雨溪创建开发可以轻松构建单页 (SPA) 应用...

  • vuejs基础

    vue.js框架 一、什么是vue.js? 1.它是一套用于构建用户界面的框架,只关注视图,不仅易于上手,还便于与...

  • vuejs 基础必备

    1、active-class 是哪个组件的属性?嵌套路由怎么定义 (1)、active-class 是 vue-r...

  • Vuejs 基础与语法

    Vue 实例 创建第一个实例 {{}} 被称之为插值表达式。可以用来进行文本插值。 JSbin 预览 实例、挂载点...

  • Vuejs系列——基础部分

    作为现阶段比较火热的前端框架,vue优势在于国产,文档等详尽,社区活跃,设计模式MVVM能够比较适合国内大部分开发...

  • vuejs基础学习总结

    准备开始 vue基础 (1).历史介绍 (2).前端框架与库的区别? jquery 库 -> DOM(操作DOM)...

  • 学习记录-三月

    感想: 内容列表 名字|链接|介绍 vue基础 | https://cn.vuejs.org/ 组件-fetch ...

  • Vue render函数详解

    渲染函数 & JSX 基础[https://cn.vuejs.org/v2/guide/render-functi...

  • Composition API 使用

    响应性基础 API[https://v3.cn.vuejs.org/api/basic-reactivity.ht...

  • Vuejs2.0购物车和地址选配学习笔记

    Vuejs2.0购物车和地址选配学习笔记 按照慕课网的Vuejs2.0的学习视频零基础实践的一个demo如下:演示...

网友评论

      本文标题:vuejs基础

      本文链接:https://www.haomeiwen.com/subject/ueywtqtx.html