前端框架開始學習Vue(一)

MVVM開發思想圖(圖片可能會被縮小,請右鍵另存查看,圖片來源于網絡)
?

定義基本Vue代碼結構


1 v-text,v-cloak,v-html命令
默認 v-text沒有閃爍問題,但是會覆蓋元素中原本的內容,插值表達式只會替換自己的占位符,
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><script src="vue.js"></script><style type="text/css">[v-cloak]{display: none;}</style><body><div id="app"><p v-cloak="">{{msg}}</p></div><script type="text/javascript">var vm = new Vue({el:'#app',data:{msg:"123"}})</script></body>
</html>
View Code--使用v-cloak解決插值表達式閃爍的問題

?以上兩種 方法會默認轉義成文本輸出

如果需要輸出成網頁元素就需要 v-html

<div v-html="msg2"></div>


2 v-bind 使用【Vue中提供了 v-on:事件綁定機制】 縮寫是【:】

v-bind : 是vue中,提供的用于綁定屬性的指令
<
input type="button" name="" id="" value="按鈕" v-bind:title="msg3" />
<input type="button" name="" id="" value="按鈕" v-bind:title="msg3+'123'" />\
注意:
  v-bind:指令可以被簡寫為 : 要綁定的屬性
  v-bind中,可以寫合法的js表達式
<input type="button" name="" id="" value="按鈕" :title="msg3" /> #這樣也是可以的


?

3 v-on指令【Vue中提供了 v-on:事件綁定機制】 縮寫是【@】

<body><div id="app"><input type="button" value="按鈕2" v-on:click="show" /><input type="button" value="按鈕2" v-on:mouseover="show" />            </div><script type="text/javascript">var vm = new Vue({el:'#app',data:{msg3:'大家都是好學生'},methods:{ //這個methods屬性中定義了當前Vue實例所有可用的方法
                    show:function(){alert('hello')}}})</script></body>
View Code--使用v-on:綁定事件,此綁定了點擊事件和鼠標覆蓋事件

事件修飾符:

  .stop 阻止冒泡

<body><div id="app"><div class="inner" @click="div1Handler"><input type="button" value="惟他" @click.stop="btnHandler"/></div></div><script type="text/javascript">var vm = new Vue({el:'#app',data:{},methods:{ div1Handler(){console.log('inner div 事件')},btnHandler(){console.log('按鈕事件')}}})</script></body>
View Code--阻止冒泡

  .prevent 阻止默認事件

<body><div id="app"><a href="http://www.baidu.com" @click.prevent="linkClick">有問題,去百度</a></div><script type="text/javascript">var vm = new Vue({el:'#app',data:{},methods:{ linkClick(){console.log('觸發連接點擊事件')}}})</script></body>
View Code--阻止事件

  .capture 添加事件偵聽器時使用事件捕獲模式?

<body><div id="app"><div class="inner" @click.capture="divHandler"><input type="button" name="" id="" value="按鈕" @click="btnHandler" /></div></div><script type="text/javascript">var vm = new Vue({el:'#app',data:{},methods:{ divHandler(){console.log('class觸發')},btnHandler(){console.log('按鈕觸發')}}})</script></body>
View Code--從外到里,進行捕獲事件

  .self 只當事件在該元素本身(比如不是子元素)觸發時觸發回調

<body><div id="app"><div class="inner" @click.self="divHandler"><input type="button" name="" id="" value="按鈕" @click="btnHandler" /></div></div><script type="text/javascript">var vm = new Vue({el:'#app',data:{},methods:{ divHandler(){console.log('class觸發')},btnHandler(){console.log('按鈕觸發')}}})</script></body>
View Code--實現只有點擊當前元素時候才會觸發事件處理函數

  .once 事件只觸發一次

<body><div id="app"><div class="inner" @click.self.once="divHandler"><input type="button" name="" id="" value="按鈕" @click.once="btnHandler" /></div></div><script type="text/javascript">var vm = new Vue({el:'#app',data:{},methods:{ divHandler(){console.log('class觸發')},btnHandler(){console.log('按鈕觸發')}}})</script></body>
View Code-- .once只觸發一次事件處理函數

?

?

?.self 只會阻止自己身上冒泡行為的觸發,并不會真正阻止冒泡的行為


?


4 使用Vue完成一個跑馬燈效果

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><script type="text/javascript" src="vue.js"></script><body><div id="app"><input type="button" name="" id="" value="浪起來" v-on:click="lang"/><input type="button" name="" id="" value="低調" @click="stop"/><h4>{{msg}}</h4></div><script type="text/javascript">// 注意:在vm 實例中,如果想要獲取data上的數據 或者想要調用//  methods中的方法     ,必須通過this.數據屬性名 或this.方法名 來進行訪問// 這里的this表示 我們new 出來 的 vm 實例對象var vm = new Vue({el:'#app',data:{msg:'猥瑣發育,別浪~~!',intervalId:null},methods:{lang(){if (this.intervalId!=null)return;// 箭頭函數是解決this指向的問題this.intervalId=setInterval(()=>{//console.log(_this.msg)// 獲取到頭的第一個字符var start = this.msg.substring(0,1)// 獲取到后面的所有字符var end = this.msg.substring(1)// 重新拼接得到新的字符串,并賦值給this.msgthis.msg=end +start},400)},stop(){ //停止定時器
                        clearInterval(this.intervalId)this.intervalId=null;}}})// 分析:// 1 給浪起來按鈕綁定點擊事件 用 v-on // 2 在按鈕事件處理函數中,寫相關的業務邏輯代碼:拿到//    msg 然后調用字符串的 substring來進行字符串截取操作// 3 為了實現點擊下按鈕,自動截取的功能,需要實現定時功能</script></body>
</html>
View Code

?



?

5 v-model雙向綁定

v-bind 只能實現數據的單向綁定,從M 自動綁定到 V,無法實現雙向綁定
<
input type="text" name="" id="" v-bind:value="msg3" />
使用 v-model指令,可以實現表單元素和Model中數據雙向數據綁定
注意:v-model 只能運用在表單元素中
input(radio,text,address,email...) select checkbox
<
input type="text" name="" id="" v-model="msg3" />
    <body><div id="app"><input type="text" v-model="n1" /><select name="" id="" v-model="opt"><option value="+">+</option><option value="-">-</option><option value="*">*</option>                <option value="/">/</option>                </select><input type="text" v-model="n2" /><input type="button" value="=" @click="calc"/><input type="text" name="" id="" v-model="result" /></div><script type="text/javascript">var vm = new Vue({el:'#app',data:{n1:0,n2:0,result:0,opt:'+'},methods:{ calc(){ //計算器算數方法
//                        switch(this.opt){
//                            case "+":
//                            this.result = parseInt(this.n1)+parseInt(this.n2)
//                            break;
//                            case "-":
//                            this.result = parseInt(this.n1)-parseInt(this.n2)
//                            break;
//                            case "*":
//                            this.result = parseInt(this.n1)*parseInt(this.n2)
//                            break;
//                            case "/":
//                            this.result = parseInt(this.n1)+parseInt(this.n2)
//                            break;
//                        }// 投機取巧法,正式開發中,盡量少用var codeStr = 'parseInt(this.n1)'+this.opt+'parseInt(this.n2)'this.result=eval(codeStr)},}})</script></body>
View Code ---用v-model雙向綁定實現計算器的基本功能

?

轉載于:https://www.cnblogs.com/Skyda/p/10216747.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450217.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450217.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450217.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android App圖片輪播效果的組件化

簡介 一個通用的圖片輪播效果的通用組件&#xff0c;方便開發者快速集成。 初學者&#xff0c;其實應該實現一個自定義控件的&#xff0c;改天有空&#xff0c;在學習下吧&#xff0c;學習能力一般&#xff0c;以前也沒寫過java&#xff0c;這個組件都寫了好久&#xff0c;慚愧…

天下IT:程序員能掙哪些外快?

各位朋友&#xff0c;大家好&#xff01;歡迎收看《天下IT》。 今天我們給您講講程序員&#xff0c;坦率的說世界上的程序員基本跟我手里的帽子一樣遍地都是&#xff0c;各種各樣的程序員&#xff0c;因為程序員已經成為社會的主流打工群體。但是程序員實際在公司里往往是最不受…

P1616 瘋狂的采藥(洛谷,動態規劃遞推,完全背包)

先上題目鏈接:P1616 瘋狂的采藥 然后放AC代碼: #include<bits/stdc.h> #define ll long long using namespace std; ll f[100010]; ll timee[10010]; ll w[10010]; int main() {ll t,m;cin>>t>>m;//t總時間,m總草藥//time時間,w價值for(ll i1;i<m;i){scan…

MySQL通過source命令執行sql文件

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 IT人員經常會和MySQL打交道&#xff0c;備份和恢復應該是最常用的操作了&#xff0c;那么通過直接執行sql文件無疑是最快捷的方式&#x…

Android系統中通過shell命令實現wifi的連接控制

簡介 工作中遇到一個“變態”的需求&#xff0c;在android系統中不通過java層控制wifi的連接&#xff08;主要是修改ap的essid和password&#xff09;&#xff0c;而是需要通過native層實現對wifi的控制。 How 接到這個需求時&#xff0c;第一個想法是如何找到Android nativ…

程序員賺大錢

本文共分三部分&#xff0c;現在打開的是《第一部分》&#xff0c;歡迎繼續閱讀《第二部分》和《第三部分》1 引子 都說海闊憑魚躍&#xff0c;又有多少魚能躍出大海&#xff1f;都說天高任鳥飛&#xff0c;但真正能一飛沖天的&#xff0c;也不過是寥寥數鷹而已&#xff1b;在…

MySQL索引底層實現原理

索引的本質 MySQL官方對索引的定義為&#xff1a;索引&#xff08;Index&#xff09;是幫助MySQL高效獲取數據的數據結構。提取句子主干&#xff0c;就可以得到索引的本質&#xff1a;索引是數據結構。 我們知道&#xff0c;數據庫查詢是數據庫的最主要功能之一。我們都希望查詢…

解決 A component required a bean of ‘XXX.RoleService‘ that could not be found.

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 springboot工程啟動報錯&#xff0c;無法啟動成功。 dubbo訂閱服務失敗&#xff0c;提示如下&#xff1a; 出錯原因&#xff1a;唉&…

開源個小工具simple-repo

背景 了解android系統的都應該熟悉repo這個工具&#xff0c;google為了方便管理數百個git倉庫&#xff0c;開發了repo這個批量管理工具。不過google repo project配置比較麻煩&#xff0c;而通過gitbucket搭建git server則比較傻瓜&#xff0c;所以此處開發了simple-repo這么一…

配合OAuth2進行單設備登錄攔截

2019獨角獸企業重金招聘Python工程師標準>>> 要進行單設備登錄&#xff0c;在其他地點登錄后&#xff0c;本地的其他操作會被攔截返回登錄界面。 原理就在于要在登錄時在redis中存儲Session,進行操作時要進行Session的比對。 具體實現&#xff0c;假設我們的OAuth 2…

朱大鳴:中國金融危機到底有多嚴重

我們到底該不該救助金融機構&#xff0c;中國鈔票到底有沒有超發&#xff0c;對于這個問題&#xff0c;央行行長周小川日前撰文全面為之辯護&#xff1a;對于第一個問題&#xff0c;他的觀點是金融業出現了問題就必須救&#xff0c;否則意味著集體的失靈甚至死亡&#xff1b;中…

C++知識點(六)數組、指針與字符串導學

1.數組 地址連續存放初始化&#xff1a;列出全部初始值后&#xff0c;第1維下標個數可以省略不做初始化&#xff0c;局部變量中為垃圾數據&#xff0c;static變量為0只對一部分進行初始化&#xff0c;其余數值初始化為02.動態內存分配&#xff1a; new delete 3.動態創建數組 n…

Android應用開發—知識點匯總

獲取Fragment的context&#xff1a; getActivity().getApplicationContext()或者getActivity()You can use getActivity(), which returns the activity associated with a fragment.The activity is a context (since Activity extends Context).設置TextView的顏色setTextCol…

條件渲染vue

v-if:只渲染一次的情況下&#xff0c;性能更好v-show:頻繁切換性能更好 vue虛擬DOM技術 瀏覽器&#xff1a;渲染引擎&#xff08;慢&#xff09;JS引擎&#xff08;快&#xff09; 用1個JS對象來充當DOM對象&#xff0c;因為JS對象性能比較快&#xff0c;所以用虛擬DOM對象進行…

錢線觀察:貨幣基金T+0駕到 活期存款將死?

導語&#xff1a;即使沒有任何投資風險&#xff0c;通脹也在侵蝕居民的財富&#xff0c;現金是不安全的。最近出現的一項業務&#xff0c;貨幣基金"T0"贖回&#xff0c;意味著貨幣基金可以像活期存款一樣即時取現&#xff0c;而其收益率普遍高于活期存款。因此有人認…

git stash和git stash pop

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 git stash 可用來暫存當前正在進行的工作&#xff0c; 比如想pull 最新代碼&#xff0c; 又不想加新commit&#xff0c; 或者另外一種情…

CentOS 7.0 上安裝和配置 VNC 服務器

作為一個系統管理員&#xff0c;大多數時間是通過網絡管理服務器的。在管理服務器的過程中很少會用到圖形界面&#xff0c;多數情況下我們只是用 SSH 來完成我們的管理任務。在這篇文章里&#xff0c;我們將配置 VNC 來提供一個連接我們 CentOS 7 服務器的方法。VNC 允許我們開…

Android應用開發—TextView的動態創建

動態創建TextView的兩種方式&#xff1a; 下面介紹兩種創建方式&#xff1a; 在drawable里面創建共同依賴的background.xml文件&#xff0c;里面設置shape來設置文本框的一些特殊效果&#xff1a; eg&#xff1a; <?xml version"1.0" encoding"utf-8"…

Mongo DB 簡單搭建和部署

1.先下載源代碼包 官網下載地址&#xff1a;http://www.mongodb.org/downloads 2.解包tar xf mongodb-linux-x86_64-rhel62-3.2.7.tgz 3.把包移動到 /usr/local/mongodb mv mongodb-linux-x86_64-rhel62-3.2.7/ /usr/local/mongodb 指定同一時間最多可開啟的文件數&#xff08…

運算符優先級 必熟記,放到心里

優先級 運算符 名稱或含義 使用形式 結合方向 說明 1 [] 數組下標 數組名[常量表達式] 左到右 () 圓括號 &#xff08;表達式&#xff09;/函數名(形參表) . 成員選擇&#xff08;對象&#xff09; 對象.成員名 -> 成員選擇&#xff08;指針&#xff0…