国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【vue基礎(chǔ)語法詳細(xì)介紹】

這篇具有很好參考價值的文章主要介紹了【vue基礎(chǔ)語法詳細(xì)介紹】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 基礎(chǔ)語法

Vue.js使用聲明式渲染、組件化、指令等一系列概念來構(gòu)建前端應(yīng)用,以下是一些Vue.js的基本語法和概念:

1.1 聲明式渲染

Vue.js 使用了基于HTML的模板語法,允許你聲明式地將 DOM 綁定到底層 Vue 實例的數(shù)據(jù)上。

<div id="app">
  {{ message }}
</div>
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})

當(dāng) Vue 實例被創(chuàng)建時,它將掛載點內(nèi)的DOM與數(shù)據(jù)綁定通過一些指令與特殊的屬性連接起來。

1.2 條件與循環(huán)

v-if 進行條件渲染,用 v-for 進行列表渲染。

<div id="app">
  <p v-if="seen">Now you see me</p>
  <ul>
    <li v-for="todo in todos">
      {{ todo.text }}
    </li>
  </ul>
</div>
var app = new Vue({
  el: '#app',
  data: {
    seen: true,
    todos: [
      { text: 'Learn JavaScript' },
      { text: 'Learn Vue' },
      { text: 'Build something awesome' }
    ]
  }
})

如果 seen 的值為 false,那么 <p> 標(biāo)簽不會被渲染,列表中的內(nèi)容會根據(jù) todos 數(shù)組動態(tài)生成。

1.3 事件處理

可以用 v-on 指令監(jiān)聽 DOM 事件,并在觸發(fā)時執(zhí)行一些 JavaScript 代碼。

<div id="app">
  <button v-on:click="reverseMessage">Reverse Message</button>
</div>
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!'
  },
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})

點擊按鈕后,reverseMessage 方法將被調(diào)用,數(shù)據(jù) message 的內(nèi)容將被反轉(zhuǎn)。

1.4 雙向數(shù)據(jù)綁定

Vue.js 提供了一個指令 v-model 實現(xiàn)表單輸入和應(yīng)用狀態(tài)之間的雙向綁定。

<div id="app">
  <input v-model="message">
  <p>{{ message }}</p>
</div>
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})

用戶輸入的每一個字符都會立即更新到 message 并反映到 <p> 標(biāo)簽里。

1.5 組件化

組件是Vue.js最強大的功能之一。組件可以擴展HTML元素,封裝可重用的代碼。

// 定義名為 todo-item 的新組件
Vue.component('todo-item', {
  template: '<li>This is a todo item</li>'
})

現(xiàn)在你可以在一個父級組件模板中以自定義元素 <todo-item> 的形式使用它了。

<ol>
  <!-- 創(chuàng)建一個 todo-item 組件的實例 -->
  <todo-item></todo-item>
</ol>

Vue 的組件結(jié)構(gòu)允許我們以不同的方式組合組件來構(gòu)建強大的應(yīng)用。

以上是Vue的基本概念和常用語法的介紹,Vue的設(shè)計思想很大程度上是讓開發(fā)者能夠?qū)W⒂趹?yīng)用的數(shù)據(jù)邏輯,而不需要直接操作DOM,從而簡化了前端開發(fā)的復(fù)雜度。

2. 模板語法

Vue.js 使用了基于 HTML 的模板語法,允許開發(fā)者聲明式地將 DOM 綁定至底層 Vue 實例的數(shù)據(jù),所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循規(guī)范的瀏覽器和 HTML 解析器解析,vue將模板編譯成虛擬dom,結(jié)合響應(yīng)系統(tǒng),Vue 能夠智能地計算出最少需要重新渲染多少組件,并把 DOM 操作次數(shù)減到最少。

  • html模板語法:
    這是一種基于字符串的模板技術(shù),以字符串和數(shù)據(jù)為輸入,通過用正則表達式將占位符替換為所需數(shù)據(jù)的方式,構(gòu)建出完整的 HTML 字符串。

2.1 插值

2.1.1 文本

使用 {{msg}}的形式,標(biāo)簽將會被替換成為數(shù)據(jù)對象(data)上msg屬性值,當(dāng)綁定的數(shù)據(jù)對象上的msg屬性值發(fā)生變化時,插值處的值也會發(fā)生變化(雙向綁定)

2.1.2 html

{{}}的方式將數(shù)據(jù)處理為普通文本,如果要輸出html,需要使用v-html指令
示例:
在data中定義一個html屬性,其值為html

data: {
    html:  '<input type="text" value="hello"/>'
}

在html中取值

<span v-html="html"></span>

2.1.3 屬性

HTML屬性中的值應(yīng)使用v-bind指令,類型與jQuery中的$("#xxx").attr(propName, propVal)
示例,以修改元素的class屬性為例:
定義一個樣式

<style>
.redClass {
    font-size: 30px;
    color: red;
}
</style>

在data中定義一個屬性,其值為上面定義的樣式名

data: {
    red: 'redClass'
}

在html使用v-bind指令設(shè)置樣式

<p>設(shè)置之前:  aaaa</p>
<p>設(shè)置之后: <span v-bind:class="red">aaa</span></p>

在瀏覽器中可以看到相應(yīng)的效果

2.1.4 表達式

幾種常見的表達式:

{{str.substr(0,6).toUpperCase()}}
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }} 三元運算符
<li v-bind:>我的Id是js動態(tài)生成的</li>

示例1:
在html中加入元素,定義表達式

<span>{{str.substr(0,6).toUpperCase()}}</span>

在data中加入一個屬性,名為str與html中對應(yīng)

data: {
    str: 'hello vue'
}

查看效果:字符串被截取,并轉(zhuǎn)換為大寫

示例2:

<span>{{ number + 1 }}</span>

在data中加入一個屬性,名為str與html中對應(yīng)

data: {
    number: 10
}

在data中定義的number值將會被加1

示例3:
這是一個三元運算,如果ok為true,表達式值為YES ,如果ok為false則表達式值為NO

<span>{{ ok ? 'YES' : 'NO' }}</span>

在data中加入一個屬性,名為str與html中對應(yīng)

data: {
    ok: true
}

示例4:
演示id屬性綁定和動態(tài)賦值

<p>
    <input type="text" v-bind:id="bookId"/></br>
    <!--動態(tài)生成Id-->
    <input type="text" v-bind:id="'bookList_' + id"/>
</p>
data: {
    bookId: 'book001',
    id: 'book002'
}

該示例可以通過開發(fā)者工具查看生成的id屬性值。

2.2 指令

指令指的是帶有“v-"前綴的特殊屬性

2.2.1 核心指令

2.2.1.1 v-if |v-else-if|v-else

根據(jù)其后表達式的bool值進行判斷是否渲染該元素, 指令特性的值預(yù)期是單個 JavaScript 表達式 (v-for 是例外情況,稍后我們再討論)

示例:
HTML

<div v-if="type === 'A'">
    type == A
</div>
<div v-else-if="type === 'B'">
    type == B
</div>
<div v-else>
    other value
</div>

JS

var vm = new Vue({

       el: '#app',

       data: {
           type: 'C'
       }
   });

可以修改data中的type值觀察頁面的輸出。

注: js = == === 之間的區(qū)別
一個等號是賦值操作,==先轉(zhuǎn)換類型再比較,===先判斷類型,如果不是同一類型直接為false
alert(1 == “1”); // true
alert(1 === “1”); // false
2.2.1.2 v-show

與v-if類似,只是不會渲染其身后表達式為false的元素,而且會給這樣的元素添加css代碼:style="display:none"。
當(dāng)v-show 表達式true則顯示,否則不顯示。
注意:使用v-show,雖然不顯示,但在頁面的dom中是存在的,只是display屬性為none
示例: 在HTML中加入如下內(nèi)容

<div v-show="show === 'yes'">
    show == yes
</div>

在data中定義show屬性

var vm = new Vue({
    el: '#app',
    data: {
        show: 'yes' 
    }
});

修改show值,觀察頁面顯示

2.2.1.3 v-for

循環(huán)遍歷

遍歷數(shù)組: v-for="item in items", items是數(shù)組,item為數(shù)組中的數(shù)組元素
遍歷對象: v-for="(value,key,index) in stu", value屬性值, key屬性名,index下標(biāo)

示例:
定義一個div,使用v-for指令輸出,items是vue實例中data中定義的對象數(shù)組

<!--數(shù)組-->
<div v-for="item in items">
     {{item.name}} -- {{item.id}}
</div>

<!--循環(huán)生成下拉列表-->
<div>
    <select >
        <option v-for="item in items" 
            v-bind:value="item.id">{{item.name}}</option>
    </select>
</div>

<!--對象-->
<div v-for="(o,key) in obj">
    {{key}}-{{o}}
</div>
var vm = new Vue({

    el: '#app',

    data: {
        itmes:[
            {name: 'zs',age:18},
            {name: 'ww',age:19},
            {name: 'ls',age:20},
            {name: 'zl',age:21}
        ],
        obj: {
            name:'張三',
            age: 21,
            addr: 'xxxx'
        }
    }
});
2.2.1.4 v-on|v-model|v-for

創(chuàng)建一組多選框,可以獲取到用戶選擇項

<!--
循環(huán)生成一組多選按鈕,v-model通過vue的雙向綁定將用戶選擇的項保存到
定義的selected組數(shù)中
-->
<div v-for="(item,index) in items">
    {{index}}:<input type="checkbox" v-bind:value="item.id"
            v-model="selected">{{item.name}}
</div>
<button v-on:click="getSelected()">獲取選擇</button>
var vm = new Vue({

    el: '#app',

    data: {
        type: 'C',
        show: 'no',
        items:[
            {name: '天津',id:18},
            {name: '昆明',id:19},
            {name: '武漢',id:20},
            {name: '南京',id:21}
        ],
        obj: {
            name:'張三',
            age: 21,
            addr: 'xxxx'
        },
        selected:[]
    },
    methods: {
        getSelected: function() {
            console.log(this.selected);
        }
    }
});
2.2.1.5 參數(shù) v-bind:href,v-on:click

示例:

<!--參數(shù):href-->
<div>
    <a v-bind:href="url">baidu</a>
</div>

<!--
參數(shù):動態(tài)參數(shù).
attname需要在data中定義,
注意:attname要全部小寫!!
-->
<div>
    <a v-bind:[attrname]="url">baidu</a>
    <button v-on:[evname]="clickme">點我看看</button>
</div>

注意:在動態(tài)參數(shù)中,作為參數(shù)的變量名(如:attrname)要全部小寫,否則無效 ?。?/em>

var vm = new Vue({

    el: '#app',

    data: {

        url: 'https://www.baidu.com',
        attrname:'href',
        evname: 'click'
    },

    methods: {
        clickme: function() {
            console.log("點到我了");
        }
    }

});
2.2.1.6 簡寫

Vue為v-bindv-on這兩個最常用的指令,提供了特定簡寫文章來源地址http://www.zghlxwxcb.cn/news/detail-789118.html

指令 簡寫 示例
v-bind:xxx :xxx v-bind:href 簡寫為 :href
v-on:xxx @xxx v-on:click 簡寫為 @click

到了這里,關(guān)于【vue基礎(chǔ)語法詳細(xì)介紹】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 前端 js 操作 Cookie 詳細(xì)介紹與案例

    前端 js 操作 Cookie 詳細(xì)介紹與案例

    1.1 詳細(xì)介紹 名稱和值:Cookie由一個名稱和對應(yīng)的值組成。名稱是一個字符串,用于標(biāo)識Cookie,而值則是與名稱相關(guān)聯(lián)的數(shù)據(jù)。 域名:每個Cookie都與特定的域名相關(guān)聯(lián)。Cookie只會被發(fā)送到與其關(guān)聯(lián)的域名下的請求中。 路徑:Cookie可以與特定的路徑相關(guān)聯(lián)。當(dāng)瀏覽器向指定路徑

    2024年02月09日
    瀏覽(17)
  • Docker基礎(chǔ)(鏡像的結(jié)構(gòu),Dockerfile語法介紹,基于Ubuntu鏡像來構(gòu)建一個Java應(yīng)用)

    要想自己構(gòu)建鏡像,必須先了解鏡像的結(jié)構(gòu)。 鏡像之所以能讓我們快速跨操作系統(tǒng)部署應(yīng)用而忽略其運行環(huán)境、配置,就是因為鏡像中包含了程序運行需要的系統(tǒng)函數(shù)庫、環(huán)境、配置、依賴。 因此,自定義鏡像本質(zhì)就是依次準(zhǔn)備好程序運行的基礎(chǔ)環(huán)境、依賴、應(yīng)用本身、運

    2024年02月20日
    瀏覽(26)
  • 基于vue.js前端+java后臺購物商城系統(tǒng)設(shè)計與實現(xiàn)

    基于vue.js前端+java后臺購物商城系統(tǒng)設(shè)計與實現(xiàn)

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計教育和輔導(dǎo)。 所有項目都配有從入門到精通的基礎(chǔ)知識視頻課程,學(xué)習(xí)后應(yīng)對畢業(yè)設(shè)計答辯。 項目配有對應(yīng)開發(fā)文檔、

    2024年04月14日
    瀏覽(22)
  • 【Vue前端】vue使用筆記0基礎(chǔ)到高手第2篇:Vue進階知識點介紹(附代碼,已分享)

    【Vue前端】vue使用筆記0基礎(chǔ)到高手第2篇:Vue進階知識點介紹(附代碼,已分享)

    本系列文章md筆記(已分享)主要討論vue相關(guān)知識。Vue.js是前端三大新框架:Angular.js、React.js、Vue.js之一,Vue.js目前的使用和關(guān)注程度在三大框架中稍微勝出,并且它的熱度還在遞增。Vue.js是一個輕巧、高性能、可組件化的MVVM庫,同時擁有非常容易上手的API。Vue.js是一個構(gòu)建

    2024年02月19日
    瀏覽(29)
  • Flutter基礎(chǔ)語法(六)var、final、const、late

    第六章 Fluttervar、final、const、late的區(qū)別與使用 在使用flutter開發(fā)已經(jīng)有一段時間了,在之前都是快速開發(fā),沒有時間去復(fù)盤自己的知識體系,現(xiàn)在就從flutter的基本語法開始,一步步分析flutter涉及到的細(xì)節(jié)問題,希望對你有所幫助。 var就是定義變量的意思。 var定義的變

    2024年02月10日
    瀏覽(18)
  • flutter基礎(chǔ)入門教程(Dart語法+UI布局+頁面路由+后端連接)

    flutter基礎(chǔ)入門教程(Dart語法+UI布局+頁面路由+后端連接)

    1、環(huán)境安裝 1基礎(chǔ)安裝步驟教程 Android Studio安裝與配置 https://juejin.cn/post/6844904054569582605 安裝Android Studio前,需要先選擇安裝Java環(huán)境,Java需要到Oracle官網(wǎng)上下載安裝,需要注冊一個Oracle賬號。 https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html Windows 10 配置Java 環(huán)境變量

    2024年02月03日
    瀏覽(30)
  • 【Java基礎(chǔ)】BIO/NIO/AIO的詳細(xì)介紹與比較區(qū)分

    【Java基礎(chǔ)】BIO/NIO/AIO的詳細(xì)介紹與比較區(qū)分

    BIO 全稱 Blocking I/O,它是 JDK 1.4 之前的傳統(tǒng)IO模型,是一種同步阻塞的IO,線程發(fā)起 IO 后,一直阻塞,直到緩沖區(qū)數(shù)據(jù)就緒后,在進入下一步操作 BIO存在的問題: 無法應(yīng)對高并發(fā)的場景 連接建立后,當(dāng)前線程沒有數(shù)據(jù)可讀就會阻塞,造成資源浪費 BIO適用場景: 客戶端連接數(shù)

    2024年01月20日
    瀏覽(26)
  • JavaScript基礎(chǔ)——1.js基礎(chǔ)語法

    js全稱JavaScript,是一種輕量級的面向?qū)ο蟮?編程語言 ,既能用在瀏覽器中控制頁面交互,也能用在服務(wù)器端作為網(wǎng)站后臺(借助 Node.js),因此 JavaScript 是一種全棧式的編程語言。 JavaScript 與 HTML 和 CSS 共同構(gòu)成了我們所看到的網(wǎng)頁,其中: HTML 用來定義網(wǎng)頁的內(nèi)容,例如標(biāo)

    2024年04月28日
    瀏覽(23)
  • Vue | Vue.js 高級語法系列

    Vue | Vue.js 高級語法系列

    ??? Vue.js專欄:Vue.js 高級語法系列 ????? 個人簡介:一個不甘平庸的平凡人?? ? 個人主頁:CoderHing的個人主頁 ?? 格言: ?? 路漫漫其修遠(yuǎn)兮,吾將上下而求索?? ?? 你的一鍵三連是我更新的最大動力?? 目錄 一、Vue中自定義指令 認(rèn)識自定義指令 指令的生命周期

    2024年01月21日
    瀏覽(23)
  • Next.js基礎(chǔ)語法

    Next.js基礎(chǔ)語法

    _app.tsx是項目的入口組件,主要作用: 可以擴展自定義的布局(Layout) 引入全局的樣式文件 引入Redux狀態(tài)管理 引入主題組件等等 全局監(jiān)聽客戶端路由的切換 Next.js默認(rèn)是沒有配置路徑別名的,我們可以在ts.config.json中配置模塊導(dǎo)入的別名: baseUrl :配置允許直接從項目的根目

    2024年02月10日
    瀏覽(68)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包