詳解Vue-基本標簽和自定義控件
按照國際慣例先安利:Useful-Open-Source-Android_jb51.rar
上一篇把環(huán)境搭完了,然后把默認的8080內(nèi)容跑通了,這一片嘗試把常用的一些標簽給學(xué)習(xí)一下(按鈕啊,列表,圖片啥的)
整篇都是跟著官方教程學(xué),只是加入一系列自己的理解和分析,方便以后溫故
默認環(huán)境已經(jīng)幫我們把包結(jié)構(gòu)建好了,如下

index.html是我們的頁面
main.js是讓App.vue和頁面產(chǎn)生關(guān)聯(lián)的“掛載js文件“(不知道這么描述合適不合適,有問題歡迎提出)
App.vue就是我們具體的vue代碼
vue本身對實際DOM進行了一層封裝,我們的渲染等一系列行為其實都是在一個”虛擬dDOM”上進行操作,然后會刷新你需要刷新的地方,而不是整體刷新(這也就是性能相對好點一部分原因)
像React的render函數(shù)內(nèi)渲染ui控件一樣,vue是在一個<template></template>的便簽下寫自己的內(nèi)容,像這樣
<div id="app2">
{{ msg }}
</div>
有學(xué)過js 的小伙都知道,這里的msg是一個帶值的引用而不是一個'msg'而他的值來源于data{}下的屬性 msg
完整代碼如下
<template>
<div id="app2">
{{ msg }}
</div>
</template>
<script>
export default {
name: 'app2',
data () {
return {
msg: 'Hello wjj!'
}
}
}
</script>
這就會在頁面上打出 Hello wjj!了,不信你悄悄看
你的值屬性都在data{}內(nèi),而一些諸如method,component則是和data{}平級的(這部分之后會有一個例子)
vue使用v-加上一些特殊屬性形成 指令,諸如v-bind就可以響應(yīng)式的讓數(shù)據(jù)和DOM發(fā)生綁定,只要數(shù)據(jù)變了頁面就會刷新,普通的文本試過了接下來我們試試按鈕
按鈕
<template>
<div id="app2">
<p>{{ message }}</p>
<button v-on:click="showlog">查看log</button>
</div>
</template>
<script>
export default {
name: 'app2',
data () {
return {
message: 'Hello Vue.js!'
}
},
methods: {
showlog: function () {
console.log(this.message)
}
}
}
</script>
這邊用 v-on來響應(yīng)onclick事件
把時間交由一個方法 showlog來處理,這個方法也沒干啥事 打了一句log

列表
普通的h5做一個列表需要<ol> <li>配合的組合拳,Vue幾乎一致,值也是從data{}里返回來的,像這樣
<template>
<div id="app2">
<ol>
<li v-for="list in items">
{{ list.text }}
</li>
</ol>
</div>
</template>
<script>
export default {
name: 'app2',
data () {
return {
items:[
{ text : '123'},
{ text : '234' },
{ text : 345 },
{ text : 10086}
]
}
}
}
</script>
用v-for來修飾列表,這個命名也不是瞎取的 in前 是集合體 in后是集合屬性(也就是item具體屬性的key,這里是text,不信你 v-for后面隨便改 鐵定報錯)

這個也是綁定數(shù)據(jù)的,不信你控制臺改改list的數(shù)據(jù)就知道了,結(jié)果一定會變
邏輯判斷
有v-for那也一定有v-if,看了看api還真有 當v-if的值為false時,這個標簽將不可見
<template>
<div id="app2">
<p v-if="isTrue">10086</p>
</div>
</template>
<script>
export default {
name: 'app2',
data () {
return {
isTrue: true
}
}
}
</script>
你把 isTrue改成false 10086就不顯示了(這里還能使用表達式,這部分知識點以后講到)
用戶輸入
<template>
<div id="app2">
<p>{{ message }}</p>
<input v-model="message">
</div>
</template>
<script>
export default {
name: 'app2',
data () {
return {
message: hi wjj
}
}
}
</script>
api提供了v-model 指令提供了控件與數(shù)據(jù)的雙向綁定,讓我們很輕松的能獲取輸入內(nèi)容 此處message的值會根據(jù)輸入變化而變化,并不是一個常量
第一個自定義控件
首先我們在 src目錄下新建一個目錄 叫”component”,建一個mycomponent.vue文件,然后也讓他打2句話吧
<template>
<div id="mycomponent">
<h1>我是第一個自定義控件</h1>
<p>{{ msg }}</p>
</div>
</template>
<script type="text/javascript">
export default{
data(){
return{
msg : "hi i am wjj"
}
}
}
</script>
然后在我們的app.vue里調(diào)用他
<template>
<div id="app2">
<p>{{ message }}</p>
<input v-model="message"></input>
<mycomponent></mycomponent>
</div>
</template>
<script>
import mycomponent from './component/mycomponent.vue'
export default {
name: 'app2',
data () {
return {
message: 'Hello Vue.js!'
}
},
components: { mycomponent }
}
</script>
這里 有幾個知識點
1.Vue的導(dǎo)入操作是在<script></script>標簽里。
2.如果存在子/父控件的概念的話,一定要先初始化/加載子控件 。
效果如下:

教程的第一個大章節(jié)就濃縮完了,非常簡短簡單,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue Element前端應(yīng)用開發(fā)之菜單資源管理
在權(quán)限管理系統(tǒng)中,菜單也屬于權(quán)限控制的一個資源,屬于角色控制的一環(huán)。不同角色用戶,登錄系統(tǒng)后,出現(xiàn)的系統(tǒng)菜單是不同的。菜單結(jié)合路由集合,實現(xiàn)可訪問路由的過濾,也就實現(xiàn)了對應(yīng)角色菜單的展示和可訪問路由的控制。2021-05-05
淺談vite和webpack的性能優(yōu)化和區(qū)別
本文主要介紹了淺談vite和webpack的區(qū)別,從性能優(yōu)化的幾個方便講解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
Vue3實現(xiàn)動態(tài)路由與手動導(dǎo)航
這篇文章主要為大家詳細介紹了如何在?Vue?3?中實現(xiàn)動態(tài)路由注冊和手動導(dǎo)航,確保用戶訪問的頁面與權(quán)限對應(yīng),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12
解決vuex數(shù)據(jù)異步造成初始化的時候沒值報錯問題
今天小編大家分享一篇解決vuex數(shù)據(jù)異步造成初始化的時候沒值報錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
前端利用vue實現(xiàn)導(dǎo)入和導(dǎo)出功能詳細代碼
最近項目中讓實現(xiàn)一個導(dǎo)入導(dǎo)出Excel的功能,下面這篇文章主要給大家介紹了關(guān)于前端利用vue實現(xiàn)導(dǎo)入和導(dǎo)出功能的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-09-09

