1. 程式人生 > 其它 >2021 CCPC網路賽重賽

2021 CCPC網路賽重賽

本文基於B站尚矽谷的Vue學習教程,推薦大家去觀看。

一. Vue簡介

Vue是一套用於構建使用者介面的漸進式js框架,它的學習可以分為以下6個部分。

  1. Vue基礎
  2. vue-cli
  3. vue-router
  4. vuex
  5. element-ui
  6. vue3

Vue有三個主要的特點:

  • 採用元件化模式,提高程式碼複用率、且讓程式碼更好維護。

  • 宣告式編碼,讓編碼人員無需直接操作DOM,提高開發效率。

  • 使用虛擬DOM+優秀的Diff演算法,儘量複用DOM節點。

理解元件化的含義,元件字尾為.vue,包括html,css,和js程式碼

這裡推薦vue的官網,裡面有文件和很多學習資源。

學習Vue之前要掌握的JavaScript基礎知識包括ES6語法規範,ES6模組化,包管理器,原型、原型鏈,陣列常用方法,axios,promise等等。

二. 搭建Vue開發環境

簡單配置:

  1. 官網下載開發版本vue.js
  2. 瀏覽器安裝vue devtools(一般瀏覽器外掛庫裡可以搜到)
  3. 在html檔案對vue.js進行引用即可完成一些簡單的實驗。

三. vue的知識點

1. vue的基本常識

入門知識
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue模板語法</title>
    <script type="text/javascript" src="vue.js"></script>
</head>
<body>
<!--
初識Vue:
    1.想讓Vue工作,就必須建立一個Vue例項,且要傳入一個配置物件;
    2.root容器裡的程式碼依然符合html規範,只不過混入了一些特殊的Vue語法;
    3.root容器裡的程式碼被稱為Vue模板;
    4.Vue例項和容器是一一對應的;
    5.真實開發中只有一個Vue例項, 並且會配合著元件一起使用;
    6.{{xxx}}中的xxx要寫js表示式,且xx可以自動讀取到data中的所有屬性;
    7.且data中的資料發生改變,那麼模板中用到該資料的地方也會自動更新;
-->
<!-- 建立一個容器  為Vue提供模板,展示Vue的工作成果  -->
    <div id="root">
        <h2>hello {{name}} {{school.address}}</h2>  <!-- {{}}是分隔符(插值語法)  裡面需要是js表示式-->
    </div>
    <script type="text/javascript">
        //修改全域性配置
        Vue.config.productionTip=false;//阻止Vue在啟動時生成生產提示
        //建立Vue例項
        // const x=    Vue實際上是一個建構函式
        new Vue({
            el:'#root', //el用於指定當前Vue例項為哪個容器服務,值通常為css選擇器字串
            data:{ //data中用於儲存資料,資料供el所指定的容器去使用,值我們暫時先寫成一個物件
                name:'hhh',
                school:{
                    name:'法拉希',
                    address: '北京西路',
                }
            }
        });//只傳一個引數——配置物件
        //容器和例項是一一對應的關係
    </script>
</body>
</html>

2. 兩大類模板語法

模板語法
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue模板語法</title>
    <script type="text/javascript" src="vue.js"></script>
</head>
<body>
<!--
Vue模板語法有2大類:
    1.插值語法:
        功能:用於解析標籤體內容。
        寫法: {{xxx}}, xxx是js表示式,且可以直接讀收到data中的所有屬性。
    2.指令語法:
        功能:用於解析標籤(包括:標籤屬性、標籤體內容、繫結事件.....)。
        舉例: v-bind:href="xxx" 或簡寫為 :href="xxx", xxx同樣要寫js表示式,
        且可以直接讀取到data中的所有屬性。
    備註: Vue中有很多的指令,且形式都是: v-????,此處我們只是拿v-bind舉個例子。
-->
    <div id="root">
        <h1>插值語法</h1>
       <h2>hello {{name}} {{school.address}}</h2>  <!-- {{}}是分隔符(插值語法)  裡面需要是js表示式-->
        <h1>指令語法</h1>
        <a v-bind:href="url">百度</a>  <!--動態繫結  url就變成了js表示式-->
        <a :href="url.toUpperCase()">百度</a>
    </div>
    <script type="text/javascript">
        //修改全域性配置
        Vue.config.productionTip=false;
        //建立Vue例項
        // const x=    Vue實際上是一個建構函式
        new Vue({
            el:'#root', //el用於指定當前Vue例項為哪個容器服務,值通常為css選擇器字串
            data:{ //data中用於儲存資料,資料供el所指定的容器去使用,值我們暫時先寫成一個物件
                name:'hhh',
                url:'http://www.baidu.com',
                school:{
                    name:'法拉希',
                    address: '北京西路',
                }
            }
        });
    </script>
</body>
</html>

3. 資料繫結

資料繫結
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-model="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue2資料繫結</title>
    <script type="text/javascript" src="vue.js"></script>
</head>
<body>
<!--
    Vue中有2種資料繫結的方式:
    1.單向繫結(v-bind):資料只能從data流向頁面。
    2.雙向繫結(v-model):資料不僅能從data流向頁面,還可以從頁面流向data。
    備註:
    1.雙向繫結都應用在表單類元素上(如: input、 select等)
    2.v-model:value可以簡寫為v-model,因為v-model 預設收集的就是value值。
-->
<div id="root">
        單向資料繫結:<input type="text" v-bind:value="name"><br/>
        雙向資料繫結:<input type="text" v-model:value="address">
<!--    簡寫-->
        單向資料繫結:<input type="text" :value="name"><br/>
        雙向資料繫結:<input type="text" v-model="address">
<!--        v-model只能應運用在表單類元素上(輸入類元素),對value進行修改-->
    </div>
</body>
    <script type="text/javascript">
        Vue.config.productionTip=false;
        new Vue({
            el:'#root',
      	    data:{ 
                name:'hhh',
             	address:'French',
            }
        })
    </script>
</html>

4. el和data的兩種寫法

el和data
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-model="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>vue2資料繫結</title>
    <script type="text/javascript" src="vue.js"></script>
</head>
<body>
<div id="root">
        單向資料繫結:<input type="text" v-bind:value="name"><br/>
        雙向資料繫結:<input type="text" v-model:value="name">
    </div>
</body>
<!--
data與e1的2種寫法
    1.e1有2種寫法
    (1).new Vue時候配置el屬性。
    (2).先建立Vue例項,隨後再通過vm.$mount('#root')指定e1的值。
    2. data有2種寫法
    (1).物件式
    (2).函式式
    如何選擇:目前哪種寫法都可以,以後學習到元件時,data必須使用函式式,否則會報錯
    3.一個重要的原則:
    由Vue管理的函式如data(),一定不要寫箭頭函式,- 一旦寫了箭頭函式,this就不再是Vue例項了。
-->
    <script type="text/javascript">
        Vue.config.productionTip=false;
        // el的兩種寫法
        const v=new Vue({
            // el:'#root',  //第一種方法
            data:{
                name:'併發地',
            }
        })
        //延時器    例項與容器相配的第二種方法   稱為掛載,會更加靈活一些
        setTimeout(()=>{
            v.$mount('#root'); //成功了,兩秒之後動態
        },2000);
        //data的兩種寫法
        new Vue({
            el:'#root',
            // 第一種方法  物件式
            /*data:{
                name:'併發地',
            }*/
            //第二種方法  函式式  寫成data()也可以
            data:function (){
                console.log('$$',this);
                return{
                    name:'啦啦啦'
                }
            }
        })
    </script>
</html>

5. MVVM模型

  • Model:對應data中的資料

  • View:模板

  • ViewModel:Vue例項物件

    視訊裡的圖示特別清晰明瞭