天天看點

vue基礎入門

目前公司前端在用vue架構,是以總結了一下vue的學習筆記(最好的學習方:官方文檔),感興趣的小夥伴可以一起來學習交流下。

一、vue的介紹

1. 什麼是vue.js

在學習一個新的架構時,首先應該知道它是什麼,它是用來幹嘛的,其次是應該如何使用它,然後可以對比下它跟相似的架構的差別或者說優勢在哪。這是我認為比較好的一種學習方式,也更容易幫助我們了解。

  • vue.js是一個目前比較流行的前端架構,Vue.js 是一套建構使用者界面的架構,隻關注視圖層,它不僅易于上手(連我這個前端小白使用起來都覺得非常爽),還便于與第三方庫或既有項目整合。(Vue有配套的第三方類庫,可以整合起來做大型項目的開發)

2. 為什麼要學習流行架構

  • vue.js能夠大大的提高我們的開發效率。在之前學習的js,jquery,他們都是直接操作Dom元素的,而使用vue可以減少不必要的Dom操作
  • 提高渲染效率
  • 資料雙向綁定的概念,我們隻需要使用vue提供的指令,隻關注資料的業務邏輯而不需要知道是如何渲染的

二、vue的基本使用

編輯器使用的vscode,個人感覺很好用!

  1. 首先安裝vue.js
  • 直接使用script标簽引入
  • 使用npm方式下載下傳(建構大型項目時比較友善,以後介紹)
  1. 第一個案例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>
    <!--直接引入,這裡需要注意的是:在開發中引入開發版本,生産版本删除警告之類的東西-->
    <script src="https://cn.vuejs.org/js/vue.js"></script>
</head>
<body>
    <div id="app">
        {{message}}
        
    </div>
    <script>
        let app = new Vue({
            el: '#app', //表示建立vue的時候,vue控制的頁面區域
            data: {
                message: 'hello world vue',
            } 
        })
    </script>
</body>
</html>
           

打開浏覽器檢視效果:

vue基礎入門

頁面效果:

vue基礎入門

3. mustache文法(插值文法),就是雙大括号

<!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="https://cn.vuejs.org/js/vue.js"></script>
</head>
<body>
    <div id="app">
        <!--兩種拼接方式,效果是一樣的-->
        {{firstName}}+{{lastName}}
        {{firstName+lastName}}
        
    </div>
    <script>
        let app = new Vue({
            el: '#app', 
            data: {
                firstName: 'kobe',
                lastName: 'bryant'
            } 
        })
    </script>
</body>
</html>
           
  1. v-once指令:使用了v-once指令,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="../vue.js/vue.js"></script>
</head>
<body>
    <div id="app">
        <h2>{{message}}</h2>
        <h2 v-once>{{message}}</h2>
    </div>
    <script>
        let app = new Vue({
            el: '#app',
            data: {
                message: '你好啊',
            } 
        })
        
    </script>
</body>
</html>
           

效果:

vue基礎入門

5. v-html指令:會将資料以HTML的形式解析

代碼:

<!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="../vue.js/vue.js"></script>
</head>
<body>
    <div id="app">
        <h1>{{url}}</h1>
        <h1 v-html="url"></h1>
    </div>
    <script>
        let app = new Vue({
            el: '#app',
            data: {
                url: "<a href='http://www.baidu.com'>百度一下</a>"
            } 
        })
        
    </script>
    
</body>
</html>
           

效果:

vue基礎入門

6. v-cload指令:使用v-cload指定樣式,在vue編譯完成時,這些樣式會從綁定的元素移除;有時候網絡較慢,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="../vue.js/vue.js"></script>
    <style>
        [v-cloak]{
            display: none;
        }
    </style>
</head>
<body>
    <div id="app" v-cloak>
        {{message}}
    </div>

    <script>
       let app = new Vue({
           el: '#app' ,
           data: {
               message: '今天天氣真好'
           }
       })
    
    </script>
</body>
</html>
           
  1. v-bind指令:v-bind可以動态綁定不同的屬性

    代碼:

<!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="../vue.js/vue.js"></script>
</head>
<body>
    <div id="app">
        <!--v-bind指令可以動态綁定不同屬性-->
        <img v-bind:src="imageUrl">

        <a v-bind:href="link">百度一下</a>
    </div>
    <script>
        let app = new Vue({
            el: '#app',
            data: {
                imageUrl: 'https://cn.vuejs.org/images/logo.png' ,
                link: 'http://www.baidu.com'
            } 
        })
        
    </script>
</body>
</html>
           

效果:

vue基礎入門

這裡注意,對象文法和數組文法(數組文法使用較少):

<!--對象文法: 含義就是class後面跟一個對象
        <div v-bind:class='{類名1:boolean,類名2:boolean}'>{{message}}</div>
        隻有當boolean的值為true時,對應的類才會加到标簽中
    -->
           

基本使用就這些,接下來繼續學習vue的進階使用。