Vue新手指南之環(huán)境搭建及入門
Vue官網(wǎng):https://cn.vuejs.org
初始Vue
什么是Vue?
一套用于構(gòu)建用戶界面的漸進(jìn)式JavaScript框架
Vue可以自底向上逐層的應(yīng)用
簡單應(yīng)用:只需要一個(gè)輕量小巧的核心庫
復(fù)雜使用:可以引入各式各樣的Vue插件
Vue的特點(diǎn):
1、組件化模式,提高代碼復(fù)用率,更好維護(hù)代碼
2、聲明式編碼:無需直接操作DOM,提高開發(fā)效率
3、使用虛擬DOM+Diff算法,復(fù)用DOM節(jié)點(diǎn)
搭建Vue開發(fā)環(huán)境
1、下載vue.js
2、創(chuàng)建項(xiàng)目并導(dǎo)入idea
3、官網(wǎng)下載:https://github.com/vuejs/devtools/tree/main
并使用Vue.js devtools
注:在此之后你打開的網(wǎng)頁如果是有Vue寫的,那頭部的Vue小標(biāo)識會(huì)變成綠色
以上Vue環(huán)境就搭建ok啦
創(chuàng)建Vue實(shí)例
1、想讓Vue工作,就必須創(chuàng)建一個(gè)Vue實(shí)例 且要傳入一個(gè)配置對象
2、root容器里的代碼依然符合html規(guī)范 只不過混入了一些特殊的Vue的語法
3、root容器里的代碼被稱為[Vue模板]
4、Vue實(shí)例和容器是一一對應(yīng)的
5、真實(shí)開發(fā)中只有一個(gè)vue實(shí)例,并且會(huì)配合著組件一起使用
6、{{xxx}}中的xxx要寫js表達(dá)式,且xxx可以自動(dòng)讀取到data中的所有屬性
7、一旦data中的數(shù)據(jù)發(fā)生改變,那么頁面中用到該數(shù)據(jù)的地方也會(huì)自動(dòng)更換
注意區(qū)分js表達(dá)式和js代碼
1、表達(dá)式:一個(gè)表達(dá)式會(huì)生成一個(gè)值 可以放在任何一個(gè)需要值的地方
(1)a (2)a+b (3)demo(1) (4)x===y?‘a(chǎn)':‘b'
2、js代碼(語句)
(1)if(){} (2)for(){}
<html lang="en"> <head> <meta charset="UTF-8"> <title>初始Vue</title> <!--引入Vue開發(fā)版--> <script type="text/javascript" src="../js/vue.js"></script> </head> <body> <!--準(zhǔn)備容器 為Vue提供模板 把Vue的成果展示--> <div id="root"> <!--{{js表達(dá)式}} 插值語法--> <h1>Hello!{{name.toUpperCase()}},{{address}}</h1> </div> <script type="text/javascript"> Vue.config.productionTip=false //以阻止 vue 在啟動(dòng)時(shí)生成生產(chǎn)提示。 //創(chuàng)建vue實(shí)例 new Vue({ //el用于當(dāng)前Vue實(shí)例為哪個(gè)容器服務(wù) 值通常為css選擇器字符串 el:'#root', //data中用于存儲數(shù)據(jù) 數(shù)據(jù)供el所指定的容器去使用,值暫時(shí)寫成一個(gè)對象. data:{ name:"南風(fēng)知我意", address:"上海" } }) </script> </body> </html>
運(yùn)行結(jié)果:
Vue模板語法
Vue模板語法有兩大類
1、插值語法:
功能:用于解析標(biāo)簽體內(nèi)容
寫法:{{xxx}},xxx是js表達(dá)式,且可以直接讀取到data中的所有屬性
2、指令語法:
功能:用于解析標(biāo)簽(包括:標(biāo)簽屬性、標(biāo)簽體內(nèi)容、綁定事件…)
舉例:v-bind:href=“xxx” 或 簡寫為 :href=“xxx”,xxx同樣要寫js表達(dá)式
且可以直接讀取data中的所有屬性
備注:Vue中有很多指令,且形式都是:v-???,此處我們只是拿v-bind舉例
<!--準(zhǔn)備容器--> <div id="root"> <h1>插值語法</h1> <h3>你好,{{name}}</h3> <hr/> <h1>指令語法</h1> <!--綁定 url當(dāng)作表達(dá)式--> <a v-bind:href="school.url.toUpperCase()" x="hello">去{{school.name}}</a> <a :href="url" x="hello">去{{name2}}</a> </div> </body> <script type="text/javascript"> Vue.config.productionTip=false //以阻止 vue 在啟動(dòng)時(shí)生成生產(chǎn)提示。 new Vue({ el:'#root', data:{ name:'南風(fēng)知我意', school:{ name: 'csdn', url:'https://blog.csdn.net/weixin_50823456?spm=1000.2115.3001.5343', } } }) </script>
運(yùn)行結(jié)果:
Vue數(shù)據(jù)綁定
Vue中有2種數(shù)據(jù)綁定的方式:
1、單向綁定( v-bind):數(shù)據(jù)只能data流向頁面
2、雙向綁定( v-model):數(shù)據(jù)不僅能從data流向頁面 還可以從頁面流向data
備注:
1、雙向綁定一般都應(yīng)用在表單元素上(如:input、select等)
2、 v-model:value可以簡寫為 v-model,因?yàn)?v-model的默認(rèn)收集的就是value值
<!--準(zhǔn)備一個(gè)容器--> <div id="root"> <!--普通寫法--> <!-- 單向數(shù)據(jù)綁定:<input type="text" v-bind:value="name"><br> 雙向數(shù)據(jù)綁定:<input type="text" v-model:value="name"><br>--> <!--簡寫--> 單向數(shù)據(jù)綁定:<input type="text" :value="name"><br> 雙向數(shù)據(jù)綁定:<input type="text" v-model="name"><br> <!--如下代碼 錯(cuò)誤: v-model只能應(yīng)用在表單類元素(輸入類元素)上--> <h2 v-model:x="name">你好啊</h2> </div> </body> <script type="text/javascript"> Vue.config.productionTip=false new Vue({ el:'#root', data:{ name:'南風(fēng)知我意' } }) </script>
運(yùn)行結(jié)果:
el-data的兩種寫法
data與el的兩種寫法
1、el有2種寫法
(1)new Vue時(shí)候配置el屬性
(2)先創(chuàng)建Vue實(shí)例,隨后再通過vm.$mount('#root')指定el的值
2、data有2種寫法
(1)對象式
(2)函數(shù)式
如何選擇:目前哪種寫法都可以,以后學(xué)習(xí)到組件時(shí),data必須使用函數(shù)式,否則會(huì)報(bào)錯(cuò)
3、一個(gè)重要原則
由Vue管理的函數(shù),一定不要寫箭頭函數(shù),一旦寫了箭頭函數(shù) this就不再是Vue實(shí)例了
<!--準(zhǔn)備容器--> <div id="root"> <h1>你好,{{name}}</h1> </div> </body> <script type="text/javascript"> Vue.config.productionTip=false //el的兩種寫法 const v=new Vue({ //el:'#root', //第一種寫法 data:{ name:'尚硅谷' } }) console.log(v) v.$mount('#root') //第二種寫法 //data的兩種寫法 const v=new Vue({ el:'#root', //data的第一種寫法 對象式 /*data:{ name:'尚硅谷' }*/ //data的第二種寫法:函數(shù)式 data(){ console.log('@@@',this) //此處的this是Vue實(shí)例對象 return{ name:'南風(fēng)知我意' } } }) </script>
MVVM模型
1、M:模型(Model):data中的數(shù)據(jù)
2、V:視圖(View):模板代碼
3、VM:視圖模型(ViewModel):Vue實(shí)例
觀察發(fā)現(xiàn):
1、data中的所有屬性 在最后都出現(xiàn)在了vm身上
2、vm身上所有的屬性及Vue原型上的所有屬性,在Vue模板中都可以直接使用
<!--準(zhǔn)備容器--> <div id="root"> <!--view--> <h1>學(xué)校名稱:{{name}}</h1> <h1>學(xué)校地址:{{address}}</h1> </div> </body> <script type="text/javascript"> Vue.config.productionTip=false const vm=new Vue({ //viewmodel el:'#root', data:{ /*model*/ name:'南風(fēng)', address:'長沙' } }) console.log(vm) </script>
Vue數(shù)據(jù)代理
通過一個(gè)對象代理對另一個(gè)對象中屬性的操作(讀、寫)
1、Vue中的數(shù)據(jù)代理:
通過vm對象來代理data對象中的屬性的操作(讀、寫)
2、Vue中數(shù)據(jù)代理的好處
更加方便的操作data中的數(shù)據(jù)
3、基本原理
通過Object.defineProperty()把data對象中所有的屬性添加到vm上
為每一個(gè)添加到vm上的屬性 都指定一個(gè)getter、setter
在getter、setter內(nèi)部去操作(讀、寫)data中對應(yīng)的屬性
<!--準(zhǔn)備容器--> <div id="root"> <!--view--> <h1>學(xué)校名稱:{{name}}</h1> <h1>學(xué)校地址:{{address}}</h1> </div> </body> <script type="text/javascript"> Vue.config.productionTip=false //阻止Vue在啟動(dòng)時(shí)生成生產(chǎn)提示 const vm=new Vue({ el:'#root', data:{ name:'南風(fēng)', address:'長沙' } }) </script>
Vue中的事件處理
事件的基本使用:
1、使用v-on:xxx 或 @xxx綁定事件 其中xxx是事件名
2、事件的回調(diào)需要配置在methods對象中,最終會(huì)在vm上
3、methods中配置的函數(shù),不需要箭頭函數(shù) 否則this就不是vm了
4、methods中配置的函數(shù),都是被Vue所管理的函數(shù),this的指向是vm或組件實(shí)例對象
5、@click="demo"和@click="demo($event)"效果一致,但后者可以傳參
<!--準(zhǔn)備容器--> <div id="root"> <h1>歡迎來到尚硅谷學(xué)習(xí)</h1> <!--<button v-on:click="showInfo">點(diǎn)我提示信息</button>--> <button @click="showInfo1">點(diǎn)我提示信息1</button> <button @click="showInfo2(66,$event)">點(diǎn)我提示信息2</button> </div> </body> <script type="text/javascript"> Vue.config.productionTip=false //阻止Vue在啟動(dòng)時(shí)生成生產(chǎn)提示 new Vue({ el:'#root', data: { name: '尚硅谷' }, methods:{ showInfo1(event){ /* console.log(event.target.innerHTML) console.log(this) //此處的this是vm*/ alert("同學(xué)你好1") }, showInfo2(number,a){ /* console.log(event.target.innerHTML) console.log(this) //此處的this是vm*/ alert("同學(xué)你好2") console.log(number,a) } } }) </script>
總結(jié)
到此這篇關(guān)于Vue新手指南之環(huán)境搭建及入門的文章就介紹到這了,更多相關(guān)Vue環(huán)境搭建及入門內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue環(huán)形進(jìn)度條組件實(shí)例應(yīng)用
在本文中我們給大家分享了關(guān)于vue環(huán)形進(jìn)度條組件的使用方法以及實(shí)例代碼,需要的朋友們跟著測試下吧。2018-10-10vue配置nprogress實(shí)現(xiàn)頁面頂部進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了vue配置nprogress實(shí)現(xiàn)頁面頂部進(jìn)度條,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09Vue Router的手寫實(shí)現(xiàn)方法實(shí)現(xiàn)
這篇文章主要介紹了Vue Router的手寫實(shí)現(xiàn)方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03關(guān)于vue.js彈窗組件的知識點(diǎn)總結(jié)
最近在開發(fā)過程對對于組件化的開發(fā)有一些感想,于是開始記錄下這些。彈窗組件一直是 web 開發(fā)中必備的,使用頻率相當(dāng)高,最常見的莫過于 alert,confirm和prompt這些,不同的組件庫對于彈窗的處理也是不一樣的,下面來一起看看吧。2016-09-09el-table表格動(dòng)態(tài)合并相同數(shù)據(jù)單元格(可指定列+自定義合并)
工作時(shí)遇到的el-table合并單元格的需求,本文主要介紹了el-table表格動(dòng)態(tài)合并相同數(shù)據(jù)單元格(可指定列+自定義合并),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07vue商城中商品“篩選器”功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue商城中商品“篩選器”功能的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07vue組件講解(is屬性的用法)模板標(biāo)簽替換操作
這篇文章主要介紹了vue組件講解(is屬性的用法)模板標(biāo)簽替換操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09Vue向下滾動(dòng)加載更多數(shù)據(jù)scroll案例詳解
這篇文章主要介紹了Vue向下滾動(dòng)加載更多數(shù)據(jù)scroll案例詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08vue vuex vue-rouert后臺項(xiàng)目——權(quán)限路由(適合初學(xué))
這篇文章主要介紹了vue vuex vue-rouert后臺項(xiàng)目——權(quán)限路由,通過本文可以很清除的捋清楚vue+vuex+vue-router的關(guān)系,本版本非常簡單,適合初學(xué)者,需要的朋友可以參考下2017-12-12