前端技术提升必备:http://www.gtalent.cn/exam/interview/lxwXZp2Bd8DLbtWH
一.vue.js的快速入门使用
1.vue.js库的下载
vue.js是目前前端web开发最流行的工具库,由尤雨溪在2014年2月发布的。
 
另外几个常见的工具库:react.js ( Facebook 的内部项目)/angular.js(谷歌)
 
官方网站:
 
​ 中文:https://cn.vuejs.org/
 
​ 英文:https://vuejs.org/
 
官方文档:https://cn.vuejs.org/v2/guide/
 
vue.js目前有1.x、2.x和3.x 版本,我们学习2.x版本的。
 
2.vue.js库的基本使用
在官网下载地址: <https://cn.vuejs.org/v2/guide/installation.html
 
vue的引入类似于jQuery,开发中可以使用开发版本vue.js,产品上线要换成vue.min.js。
 
<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <script src="js/vue.js"></script>

    <script>

    window.onload = function(){

       // vue.js的代码开始于一个Vue对象。所以每次操作数据都要声明Vue对象开始。

        var vm = new Vue({

            el:'#app',   // 设置当前vue对象要控制的标签范围。

            data:{  // data是将要展示到HTML标签元素中的数据。

              message: 'hello world!',

            }

        });

    }

    </script>

</head>

<body>

<div id="app">

    <!-- {{ message }} 表示把vue对象里面data属性中的对应数据输出到页面中 -->

    <!-- 在双标签中显示数据要通过{{  }}来完成 -->

    <p>{{ message }}</p>

</div>

</body>

</html>
 
总结:
 
1. vue的使用要从创建Vue对象开始
 
   var vm = new Vue();
 
2. 创建vue对象的时候,需要传递参数,是json对象,json对象对象必须至少有两个属性成员
 
  var vm = new Vue({

     el:"#app",

   data: {

         数据变量:"变量值",

         数据变量:"变量值",

         数据变量:"变量值",

     },

   });

 

   el:设置vue可以操作的html内容范围,值一般就是css的id选择器。
 
   data: 保存vue.js中要显示到html页面的数据。
 
3. vue.js要控制器的内容外围,必须先通过id来设置。

 

  <div id="app">

      <h1>{{message}}</h1>

      <p>{{message}}</p>

  </div> 

 

3.vue.js的M-V-VM思想
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式。
 
Model 指代的就是vue对象的data属性里面的数据。这里的数据要显示到页面中。
 
View指代的就是vue中数据要显示的HTML页面,在vue中,也称之为“视图模板” 。
 
ViewModel 指代的是vue.js中我们编写代码时的vm对象了,它是vue.js的核心,负责连接 View 和 Model,保证视图和数据的一致性,所以前面代码中,data里面的数据被显示中p标签中就是vm对象自动完成的。
 
 
编写代码,让我们更加清晰的了解MVVM:
 
<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <script src="js/vue.js"></script>

</head>

<body>

    <div id="app">

        <!-- 在双标签中显示数据要通过{{  }}来完成 -->

        <!--要想正常显示vue提供的数据,必须要放在vue对象控制标签里-->

        <h1>{{name}}</h1>

        <p>{{age}}</p>

        <!-- 在表单输入框中显示数据要使用v-model来完成,模板语法的时候,我们会详细学习 -->

        <input type="text" v-model="name">

    </div>

<script>

window.onload = function(){

    // 创建vm对象

    var vm = new Vue({

        el: "#app",

        data: {

            name:"大标题",

            age:16,

        },

    })

}

</script>

</body>

</html>
 
在浏览器中可以在 console.log通过 vm对象可以直接访问el和data属性,甚至可以访问data里面的数据
 
console.log(vm.$el)     # #box  vm对象可以控制的范围
 
console.log(vm.$data);  # vm对象要显示到页面中的数据
 
console.log(vm.$data.message);  # 访问data里面的数据
 
console.log(vm.message);# 这个 message就是data里面声明的数据,也可以使用 vm.变量名显示其他数据,message只是举例。
 
总结:
 
1. 如果要输出data里面的数据作为普通标签的内容,需要使用{{  }}
 
   用法:
 
      vue对象的data属性:
 
          data:{
            name:"小明",
 
          }
 
      标签元素:
 
       <h1>{{ name }}</h1>
 
2. 如果要输出data里面的数据作为表单元素的值,需要使用vue.js提供的元素属性v-model
 
   用法:
 
      vue对象的data属性:
 
          data:{
            name:"小明",
 
          }
 
      表单元素:
 
       <input v-model="name">
 
   使用v-model把data里面的数据显示到表单元素以后,一旦用户修改表单元素的值,则data里面对应数据的值也会随之发生改变,甚至,页面中凡是使用了这个数据都会发生变化。
 
4.显示数据
(1)在双标签中显示数据要通过{{  }}来完成数据显示
 
(2)在表单输入框中显示数据要使用v-model来完成数据显示
 
(3)双花括号仅用输出文本内容,如果要输出html代码,则不能使用这个.要使用v-html来输出.
 
v-html必须在html标签里面作为属性写出来。
 
例:
 
<!DOCTYPE html>


<html lang="en">


<head>


    <meta charset="UTF-8">


    <title>Title</title>


    <script src="js/vue.js"></script>


</head>


<body>


<div id="app">


<!--    没有渲染效果-->


    {{link}}


    <p v-html="link"></p>


<p>num是一个{{num%2==0?'偶数':'奇数'}}</p>


<!--  js还有一种运算符,三元运算符,类似于python里面的三元表达式


        三元运算符的语法:


         判断条件 ? 条件为true : 条件为false的结果


        python 三元表达式[三目运算符]的语法:


        a if 条件 else b


-->


<!--    + 有字符串拼接的效果,so,要-0-->


    <p>num的下一个整数{{num-0+1}}</p>


    <!--倒序显示-->


    <p>{{message.split('').reverse().join('')}}</p>


    <!--message正序显示-->


    <input type="text" v-model="message">


</div>


<script>


    var vm = new Vue({

        el: "#app",  // 设置vue对象控制的标签范围


        data: {   // vm对象使用的数据


            link: '<a href="https://www.baidu.com/?tn=96928074_hao_pg">百度</a>',


            num: '100',


            message: "abcdef",


        }


    })


</script>


</body>


</html>
 
总结:
 
1. 可以在普通标签中使用{{  }} 或者 v-html 来输出data里面的数据
 
   <h1>{{message}}</h1>
 
2. 可以在表单标签中使用v-model属性来输出data里面的数据,同时还可以修改data里面的数据
 
   <input type="text" v-model="username">
————————————————