• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    詳解 vue.js用法和特性

    來源:懂視網 責編:小采 時間:2020-11-27 22:27:49
    文檔

    詳解 vue.js用法和特性

    詳解 vue.js用法和特性:前 言 最近用Vue.js做了一個數據查詢平臺,還做了一個拼圖游戲,突然深深的感到了vue的強大。 Vue.js是一套構建用戶界面(user interface)的漸進式框架。與其他重量級框架不同的是,Vue 從根本上采用最小成本、漸進增量(incrementally adop
    推薦度:
    導讀詳解 vue.js用法和特性:前 言 最近用Vue.js做了一個數據查詢平臺,還做了一個拼圖游戲,突然深深的感到了vue的強大。 Vue.js是一套構建用戶界面(user interface)的漸進式框架。與其他重量級框架不同的是,Vue 從根本上采用最小成本、漸進增量(incrementally adop

    前  言

    最近用Vue.js做了一個數據查詢平臺,還做了一個拼圖游戲,突然深深的感到了vue的強大。

    Vue.js是一套構建用戶界面(user interface)的漸進式框架。與其他重量級框架不同的是,Vue 從根本上采用最小成本、漸進增量(incrementally adoptable)的設計。Vue 的核心庫只專注于視圖層,并且很容易與其他第三方庫或現有項目集成。另一方面,當與單文件組件和 Vue 生態系統支持的庫結合使用時,Vue 也完全能夠為復雜的單頁應用程序提供有力驅動。

    Vue.js目前已經更新到2.x,功能和語法上有一定升級和修改,本文首先介紹基礎內容。

    1、新手指南

      vue的使用非常簡單,下載vue.js或vue.min.js直接導入即可使用。

      2、vue初步入門

    2.1聲明式渲染

      Vue.js 的核心是,可以采用簡潔的模板語法來聲明式的將數據渲染為 DOM:

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

      這樣就會輸入:Hello Vue!

      我們已經生成了第一個 Vue 應用程序!這看起來和渲染一個字符串模板非常類似,但是 Vue 在背后做了大量工作。現在數據和 DOM 已經被關聯在一起,所有的數據和 DOM 都是響應式的。我們如何對這一切清晰領會?只需打開你的瀏覽器的 JavaScript 控制臺(現在,就在當前頁面打開),然后設置 app.message 的值,你將看到上面的示例所渲染的 DOM 元素會相應地更新。

      除了文本插值(text interpolation),我們還可以采用這樣的方式綁定 DOM 元素屬性:

    <div id="app-2">
     <span v-bind:title="message">
     鼠標懸停此處幾秒,
     可以看到此處動態綁定的 title!
     </span>
    </div>
    var app2 = new Vue({
     el: '#app-2',
     data: {
     message: '頁面加載于 ' + new Date().toLocaleString()  }
    })

      鼠標懸停幾秒后,就可以看到動態的提示。

      這里我們遇到一些新內容。你看到的 v-bind 屬性被稱為指令。指令帶有前綴 v-,表示是由 Vue 提供的專用屬性??赡苣阋呀洸碌搅?,它們會在渲染的 DOM 上產生專門的響應式行為。簡而言之,這里該指令的作用就是:“將此元素的title 屬性與 Vue 實例的 message 屬性保持關聯更新”。

      如果你再次打開瀏覽器的 JavaScript 控制臺,并輸入 app2.message = '一些新的 message',就會再次看到,綁定了title 屬性的 HTML 已經進行了更新。

    2.1條件與循環

     控制切換一個元素的顯示也相當簡單:

    <div id="app-3">
     <p v-if="seen">現在你可以看到我</p>
    </div>
    var app3 = new Vue({
     el: '#app-3',
     data: {
     seen: true
     }
    })

      繼續在控制臺輸入 app3.seen = false,你應該會看到 span 消失。

      這個示例表明,我們不只是可以將數據綁定到文本和屬性,也可以將數據綁定到 DOM 結構。而且,Vue 也提供一個強大的過渡效果系統,可以在 Vue 插入/更新/刪除元素時,自動使用過渡效果。

      還有其它一些指令,每個都具有各自不同的特殊功能。例如,v-for 指令,可以使用數組中的數據來展示一個項目列表:

    <div id="app-4">
     <ol>
     <li v-for="todo in todos">
     {{ todo.text }}
     </li>
     </ol>
    </div>
    var app4 = new Vue({
     el: '#app-4',
     data: {
     todos: [
     { text: '學習 JavaScript' },
     { text: '學習 Vue' },
     { text: '創建激動人心的代碼' }
     ]
     }
    })

    3 、vue實例

      每個 Vue 應用程序都是通過 Vue 函數創建出一個新的 Vue 實例開始的:

    var vm = new Vue({
     // 選項
    })

      盡管沒有完全遵循 MVVM 模式,但是 Vue 的設計仍然受到了它的啟發。作為約定,通常我們使用變量 vm (ViewModel 的簡稱) 來表示 Vue 實例。

    3.1data 和 methods

      在創建 Vue 實例時,會將所有在 data 對象中找到的屬性,都添加到 Vue 的響應式系統中。每當這些屬性的值發生變化時,視圖都會“及時響應”,并更新相應的新值。

    // data 對象
    var data = { a: 1 }
    // 此對象將會添加到 Vue 實例上
    var vm = new Vue({
     data: data
    })
    // 這里引用了同一個對象!
    vm.a === data.a // => true
    // 設置實例上的屬性,
    // 也會影響原始數據
    vm.a = 2
    data.a // => 2
    // ... 反之亦然
    data.a = 3
    vm.a // => 3

      每當 data 對象發生變化,都會觸發視圖重新渲染。值得注意的是,如果實例已經創建,那么只有那些 data 中的原本就已經存在的屬性,才是響應式的。也就是說,如果在實例創建之后,添加一個新的屬性,例如:

    vm.b = 'hi'

      然后,修改 b 不會觸發任何視圖更新。如果你已經提前知道,之后將會用到一個開始是空的或不存在的屬性,你就需要預先設置一些初始值。例如:

    data: {
     newTodoText: '',
     visitCount: 0,
     hideCompletedTodos: false,
     todos: [],
     error: null
    }

      除了 data 屬性, Vue 實例還暴露了一些有用的實例屬性和方法。這些屬性與方法都具有前綴 $,以便與用戶定義(user-defined)的屬性有所區分。例如:

    var data = { a: 1 }
    var vm = new Vue({
     el: '#example',
     data: data
    })
    vm.$data === data // => true
    vm.$el === document.getElementById('example') // => true
    // $watch 是一個實例方法
    vm.$watch('a', function (newValue, oldValue) {
     // 此回調函數將在 `vm.a` 改變后調用
    })

    3.2vue實例的聲明周期

      vue實例的聲明周期是一個很重要的概念,理解之后可以通過它實現很多功能。

      看下這段代碼。

    <!DOCTYPE html>
    <html>
     <head>
     <meta charset="UTF-8">
     <title></title>
     </head>
     <body>
     <div id="container">我的聲明周期,大家看吧!</div>
     </body>
     <script type="text/javascript" src="js/jquery-3.1.1.min.js" ></script>
     <script type="text/javascript" src="js/vue.js" ></script>
     <script type="text/javascript">
     //以下代碼時顯示vm整個生命周期的流程
     var vm = new Vue({
     el: "#container",
     data: {
     test : 'hello world'
     },
     beforeCreate: function(){
     console.log(this);
     showData('創建vue實例前',this);
     },
     created: function(){
     showData('創建vue實例后',this);
     },
     beforeMount:function(){
     showData('掛載到dom前',this);
     },
     mounted: function(){
     showData('掛載到dom后',this);
     },
     beforeUpdate:function(){
     showData('數據變化更新前',this);
     },
     updated:function(){
     showData('數據變化更新后',this);
     },
     beforeDestroy:function(){
     vm.test ="3333";
     showData('vue實例銷毀前',this);
     },
     destroyed:function(){
     showData('vue實例銷毀后',this);
     }
     });
     function realDom(){
     console.log('真實dom結構:' + document.getElementById('container').innerHTML);
     }
     function showData(process,obj){
     console.log(process);
     console.log('data 數據:' + obj.test)
     console.log('掛載的對象:')
     console.log(obj.$el)
     realDom();
     console.log('------------------')
     console.log('------------------')
     }
     </script>
    </html>

     看一下效果圖

      通過控制臺的打印效果可以看出來,實例化 vue 對象大致分為 創建vue實例、掛載到dom、數據變化更新、vue實例銷毀 4個階段,,注意每個階段都有對應的鉤子,我們可以通過對這些鉤子進行操作,達成一些功能。雖然初學者用不太上,但是提前了解一下還是好的,到時候碰到實際功能要能想得到生命周期的鉤子。

    總結

    以上所述是小編個大家介紹的詳解 vue.js用法和特性,希望對大家有所幫助!

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    詳解 vue.js用法和特性

    詳解 vue.js用法和特性:前 言 最近用Vue.js做了一個數據查詢平臺,還做了一個拼圖游戲,突然深深的感到了vue的強大。 Vue.js是一套構建用戶界面(user interface)的漸進式框架。與其他重量級框架不同的是,Vue 從根本上采用最小成本、漸進增量(incrementally adop
    推薦度:
    標簽: 使用 VUE 用法
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久久国产精品| 日韩精品国产另类专区| 亚洲精品无码高潮喷水在线| 97久人人做人人妻人人玩精品| 亚洲AV第一页国产精品| 国内精品久久久久久久coent| 精品免费视在线观看| 精品乱码久久久久久久| 亚洲av永久无码精品秋霞电影影院| 国产日韩久久久精品影院首页| 老司机99精品99| 97精品人妻系列无码人妻| 午夜精品久久久久久久久| 青青久久精品国产免费看| 国产一区二区三区欧美精品| 99re66在线观看精品免费 | 国产成人亚洲综合无码精品| 中文字幕精品无码久久久久久3D日动漫 | 欧美久久精品一级c片片| 国产精品国产亚洲精品看不卡| 久久精品黄AA片一区二区三区| 亚洲线精品一区二区三区影音先锋| 久久久久无码国产精品不卡| 精品视频在线观看你懂的一区 | 久久精品99久久香蕉国产色戒| 亚洲精品黄色视频在线观看免费资源 | 91麻豆精品视频| …久久精品99久久香蕉国产| 国产精品嫩草影院AV| 国产亚洲精品精华液| 国内精品人妻无码久久久影院 | 国产欧美日韩精品丝袜高跟鞋| 久久国产精品无码一区二区三区| 日韩精品极品视频在线观看免费| 日产精品一线二线三线芒果| 精品少妇无码AV无码专区| 精品福利视频一区二区三区| 国产精品无码A∨精品影院| 99久久精品国产高清一区二区| 国产精品亚洲精品观看不卡| 91精品国产综合久久四虎久久无码一级|