Vue的基礎知識

来源:https://www.cnblogs.com/xyh9039/archive/2022/12/04/16950971.html
-Advertisement-
Play Games

作為後端程式員,瞭解和掌握一些前端知識也是必不可少的,本章就和大家分享Vue的一些基礎知識,希望能夠對Vue小白有所幫助。話不多說,下麵我們直接進入主題。 一、Vue簡介 Vue簡介:1、JavaScript框架;2、簡化Dom操作;3、響應式的數據驅動(頁面是由數據來生成的,當數據改變以後頁面會同 ...


作為後端程式員,瞭解和掌握一些前端知識也是必不可少的,本章就和大家分享Vue的一些基礎知識,希望能夠對Vue小白有所幫助。話不多說,下麵我們直接進入主題。

一、Vue簡介

Vue簡介:1、JavaScript框架;2、簡化Dom操作;3、響應式的數據驅動(頁面是由數據來生成的,當數據改變以後頁面會同步的更新)
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue簡介</title>
    <script src="lib/vue.js"></script>
</head>

<body>
    <!-- Vue實例所控制的這個元素區域,就是我們 MVVM 中的 V(View視圖) -->
    <div id="app">
        <!-- 插值表達式 -->
        {{ msg }}
    </div>

    <script>
        //Vue簡介:1、JavaScript框架;2、簡化Dom操作;3、響應式的數據驅動(頁面是由數據來生成的,當數據改變以後頁面會同步的更新)
        //我們 new 出來的這個 vm 對象,就是我們 MVVM 中的 VM調度者
        var vm = new Vue({
            //el掛載點:
            //1、Vue實例的作用範圍是什麼呢?答:Vue會管理el選項命中的元素及其內部的後代元素。
            //2、是否可以使用其他的選擇器?答:可以使用其他的選擇器,但是建議使用ID選擇器。
            //3、是否可以設置在其他的Dom元素上呢?答:可以使用其他的雙標簽,但不能使用 html 或 body 標簽。
            el: '#app', //掛載點,支持所有的選擇器,推薦使用ID選擇器,不能掛載在 html 或 body 標簽上,且不能掛載在單標簽上
            //這裡的 data 就是 MVVM 中的 M(Model數據對象),專門用來保存每個頁面的數據
            data: {
                msg: 'Hello Vue!'
            }
        })
    </script>
</body>

</html>

二、Vue指令

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue指令</title>
    <script src="/lib/vue.js"></script>
    <style>
        .active {
            border: 1px solid red;
        }
    </style>
</head>

<body>
    <div id="app">
        <!-- v-text指令的作用是:設置標簽的文本值(textContent) -->
        <!-- 預設寫法會替換全部內容,使用插值表達式 {{ }} 可以替換指定的內容  -->
        <!-- 內部支持寫表達式 -->
        <div desc="v-text指令">
            <h2 v-text="msg + ' 你好Vue! ' + language.chinese">這裡的內容會被v-text指令替換掉</h2>
            <h2>{{ msg + ' 你好Vue! ' + language.chinese }}</h2>
        </div>

        <!-- v-html指令的作用是:設置元素的innerHTML -->
        <!-- v-html指令內容中有html機構會被解析為標簽,而v-text指令無論內容是什麼只會解析為文本。 -->
        <div desc="v-html指令">
            <h2 v-html="url"></h2>
        </div>

        <!-- v-on指令的作用是:為元素綁定事件 -->
        <!-- 事件名不需要寫on,指令可以簡寫為@,綁定的方法定義在methods屬性中,方法內部通過this關鍵字可以訪問定義在data中的數據 -->
        <div desc="v-on指令">
            <input type="button" value="v-on指令" v-on:click="doTest">
            <input type="button" value="v-on簡寫" @click="doTest">
            <input type="button" value="雙擊事件" @dblclick="doTest">

            <!-- 傳遞自定義參數 -->
            <input type="button" value="v-on方法帶2個參數" @click="doTest2('隔壁老王', 666)">
            <!-- 事件修飾符:事件的後面跟上 .修飾符 可以對事件進行限制,.enter 可以限制觸發的按鍵為回車 -->
            <!-- 事件修飾符有多種,更多事件修飾符可參考官網:https://v2.cn.vuejs.org/v2/api/#v-on -->
            <input type="text" @keyup.enter="doTest">

            <h2 @click="changeFood">{{ food }}</h2>
        </div>

        <!-- v-show指令的作用是:根據真假切換元素的顯示狀態 -->
        <!-- 原理是修改元素的display,實現顯示或隱藏 -->
        <!-- 指令後面的內容最終都會解析為布爾值,值為true元素顯示,值為false元素隱藏 -->
        <!-- 數據改變之後,對應元素的顯示狀態會同步更新 -->
        <div desc="v-show指令">
            <input type="button" value="v-show指令切換顯示狀態" @click="changeIsShow">
            <input type="button" value="累加年齡" @click="addAge">
            <div>
                <img v-show="isShow" src="/imgs/monkey.jpg" alt="">
                <img v-show="age>=18" src="/imgs/monkey.jpg" alt="">
            </div>
        </div>

        <!-- v-if指令的作用是:根據表達式的真假切換元素的顯示狀態 -->
        <!-- 本質是通過操縱dom元素來切換顯示狀態 -->
        <!-- 表達式的值為true,元素存在於dom樹中,值為false則從dom樹中移除 -->
        <!-- 頻繁的切換使用v-show指令,反之使用v-if指令,前者的切換消耗小 -->
        <div desc="v-if指令">
            <input type="button" value="v-if指令切換顯示狀態" @click="toggleIsShow">
            <p v-if="isShowInfo">浪子天涯</p>
            <p v-show="isShowInfo">浪子天涯 - v-show修飾</p>
            <h2 v-if="temperature>=30">熱死了</h2>
        </div>

        <!-- v-bind指令的作用是:為元素綁定屬性 -->
        <!-- 完整寫法是 v-bind:屬性名 -->
        <!-- 簡寫的話可以直接省略v-bind,只保留 :屬性名 -->
        <!-- 需要動態的增刪class建議使用對象的方式 -->
        <div desc="v-bind指令">
            <img v-bind:src="imgSrc" alt="">
            <img :src="imgSrc" :title="imgTitle" :class="isActive?'active':''" @click="toggleActive" alt="">
            <img :src="imgSrc" :title="imgTitle" :class="{active: isActive}" @click="toggleActive" alt="">
        </div>

        <!-- v-for指令的作用是:根據數據生成列表結構 -->
        <!-- 數組經常和v-for結合使用 -->
        <!-- 語法是 (item,index) in 數據 -->
        <!-- item 和 index 可以結合其他指令一起使用 -->
        <!-- 數組長度的更新會同步到頁面上,是響應式的 -->
        <div desc="v-for指令">
            <input type="button" value="添加數據" @click="add">
            <input type="button" value="移除數據" @click="removeLeft">

            <ul>
                <li v-for="(item,index) in arr">
                    {{ index + 1 }} 校區:{{ item }}
                </li>
            </ul>

            <h2 v-for="(item,index) in vegetables" :title="item.name">
                {{ item.name }}
            </h2>
        </div>

        <!-- v-model指令的作用是:便捷的設置和獲取表單元素的值 -->
        <!-- 綁定的數據會和表單元素的值相關聯(雙向數據綁定) -->
        <div desc="v-model指令">
            <input type="button" value="修改msg" @click="setMsg">
            <input type="text" v-model="msg" @keyup.enter="getMsg">
            <h2> {{ msg }} </h2>
        </div>
    </div>

    <script>
        var vm = new Vue({
            el: '#app', //掛載
            //數據
            data: {
                msg: 'Hello Vue!',
                language: {
                    chinese: '漢語'
                },
                url: "<a href='https://www.baidu.com'>百度</a>", //百度超鏈接
                food: "番茄炒雞蛋",
                isShow: false, //是否顯示
                age: 17, //年齡,
                isShowInfo: false, //是否顯示信息
                temperature: 20, //溫度
                imgSrc: "/imgs/monkey.jpg", //圖片地址
                imgTitle: "浪子天涯", //標題
                isActive: false,
                vegetables: [ //蔬菜
                    { name: "白菜" },
                    { name: "蘿蔔" }
                ],
                arr: ["北京", "上海", "廣州", "深圳"], //城市
            },
            //方法
            methods: {
                //方法測試
                doTest: function () {
                    var _this = this; //方法中通過this關鍵字獲取data中的數據
                    alert(_this.language.chinese);
                },
                //帶2個參數的方法測試
                doTest2: function (p1, p2) {
                    console.log(p1);
                    console.log(p2);
                },
                //改變食物
                changeFood: function () {
                    var _this = this; //方法中通過this關鍵字獲取data中的數據
                    _this.food += "真好吃!";
                },
                //切換顯示狀態
                changeIsShow: function () {
                    this.isShow = !this.isShow;
                },
                //累加年齡
                addAge: function () {
                    this.age++;
                },
                //切換顯示狀態
                toggleIsShow: function () {
                    this.isShowInfo = !this.isShowInfo;
                },
                //切換樣式
                toggleActive: function () {
                    this.isActive = !this.isActive;
                },
                //追加
                add: function () {
                    this.vegetables.push({
                        name: "花菜"
                    });
                },
                //移除數組左邊的第一個
                removeLeft: function () {
                    this.vegetables.shift();
                },
                //獲取msg
                getMsg: function () {
                    alert(this.msg);
                },
                //設置msg
                setMsg: function () {
                    this.msg = "程式員";
                }
            }
        })
    </script>
</body>

</html>

三、axios基本使用

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>axios基本使用</title>
    <script src="/lib/vue.js"></script>
    <script src="/lib/axios.js"></script>
</head>

<body>
    <div id="app">
        <input type="button" value="獲取信息" @click="getMsg">
        <p> {{ msg }} </p>
    </div>
    <script>
        //get請求 .then後面跟著是成功的回調函數和失敗的回調函數
        //axios.get(地址?key=value&key2=value2).then(function(response){},function(err){});

        //post請求 .then後面跟著是成功的回調函數和失敗的回調函數
        //axios.post(地址,參數對象).then(function(response){},function(err){});
        //axios.post(地址,{key:value,key2:value2}).then(function(response){},function(err){});
        /*
            axios官網地址:http://axios-js.com/zh-cn/docs/
            案例如下:
            1、執行 GET 請求
            axios.get('/user?ID=12345')
                .then(function (response) {
                   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 題目:監控記憶體剩餘空間,小於10M則發出信號,給出錯誤代碼,要求調試,如下: #!/bin/bash #mem monitor mem_size=$(free | awk ‘/mem /{print $4}’) if [$mem_size -le 102400] then echo “warning ...
  • 前言 在CAN協議中,CAN匯流排除了眾多優秀的特點外,還具有錯誤監測功能、錯誤通知功能、和錯誤恢復功能、故障封閉功能。下麵系統瞭解以下CAN匯流排上的錯誤幀。 ###錯誤檢測 所有ECU均有可以檢測錯誤的功能。 ###錯誤通知 檢測出錯誤的ECU會立即通知其他ECU ###錯誤恢復 正常發送消息的EC ...
  • 一、塊設備簡介 塊設備驅動是存儲設備驅動,塊設備驅動相比字元設備驅動的主要區別如下: ①、塊設備只能以塊為單位進行讀寫訪問,塊是 linux 虛擬文件系統(VFS)基本的數據傳輸單位。字元設備是以位元組為單位進行數據傳輸的,不需要緩衝。 ②、塊設備在結構上是可以進行隨機訪問的,對於這些設備的讀寫都是按 ...
  • 一、寫在前 知識學了就忘!不用就忘!我太健忘!特此記錄!用於複習打卡!Redis乾就完事了! 二、來辣! Redis做非同步隊列:一般list結構做隊列,rpush生產消息,lpop消費消息,當lpop沒有消息的時候,要適當sleep一會兒;如果不sleep,就用blpop,會阻塞;生產一次消費多次, ...
  • 1.3 Apache Hadoop的重要組成 Hadoop=HDFS(分散式文件系統)+MapReduce(分散式計算框架)+Yarn(資源協調框架)+Common模塊 Hadoop HDFS:(Hadoop Distribute File System )一個高可靠、高吞吐量的分散式文件系統 比如 ...
  • 和一個真正iOS開發的區別? 學習iOS的這段時間, 我一直在思考和感受著自己和一個真正做了幾年iOS的dev之間的區別. 同時也在反向思考, 我自己和一個新學Android的人, 又有什麼區別. 也許在技術轉型中, 這些學習的思考和陣痛都是有共性和不可避免的. 在此分享一下感受, 如果有人也有技術 ...
  • 最近在開發時,遇到相同的頁面,很多函數和佈局也大差不多,所以向在路由註冊時就給他們分配不同的路由,通過一些判斷走不同的邏輯獲取數據。 ...
  • /** * 替換字元串,預設替換 ""。傳遞 regExps,一個正則表達式數組。 * * @param source 被修剪的字元串 * @param regExps 正則表達式,找到匹配的字元串,然後替換掉 * @param replacement 不傳遞,預設被替換的字元串是 ""。傳遞的數組 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...