99久久精品国产片-99久久精品国产免费-99久久精品国产麻豆-99久久精品国产国产毛片-99久久精品国产高清一区二区-99久久精品费精品国产一区二区

Vue的設計理念

2021-9-29    前端達人

目錄

Mvvm模型

Vue中的Mvvm實現原理

自己實現雙向數據綁定的示例

Vue與模板引Thymeleaf擎對比

顯示變量值(Vue)

 顯示變量值(Thymeleaf)

替換Html(Vue)

替換Html(Thymeleaf)

綁定屬性(Vue)

綁定屬性(Thymeleaf)

隱藏顯示區塊(Vue)

隱藏顯示區塊(Thymeleaf)

遍歷列表數據-帶索引(Vue)

 遍歷列表數據-帶索引(Thymeleaf)

引入其他文件內容(vue)

引入其他文件內容(Thymeleaf)

Vue的頁面定義基石-Options API

Vue中的代理運用

nginx反向代理

vue代理(正向代理)

Vue特性能力-filter


Vue (讀音 /vju?/,類似于 view) 是一套用于構建用戶界面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注視圖層,不僅易于上手,還便于與第三方庫或既有項目整合

Mvvm模型

MVVM 是Model-View-ViewModel 的縮寫,它是一種基于前端開發的架構模式,其核心是提供對View 和 ViewModel 的雙向數據綁定,這使得ViewModel 的狀態改變可以自動傳遞給 View,即所謂的數據雙向綁定。
Vue.js 是一個提供了 MVVM 風格的雙向數據綁定的 Javascript 庫,專注于View 層。它的核心是 MVVM 中的 VM,也就是 ViewModel。 ViewModel負責連接 View 和 Model,保證視圖和數據的一致性,這種輕量級的架構讓前端開發更加高效、便捷。

Vue中的Mvvm實現原理

Vue.js的實現方式,對數據(Model)進行劫持,當數據變動時,數據會出發劫持時綁定的方法,對視圖進行更新。

這里有兩個方向: 

1、數據流向視圖:數據變動時,能自動更新Dom節點的內容。此功能是通過數據劫持實現的,對數據(Model)進行劫持,當數據變動時,會調用劫持時綁定的方法,對視圖進行更新。

2、視圖流向數據:如輸入框input內容發生變動時,input對應的數據也會發生變動。此功能是通過監聽Dom事件實現的。當用戶在輸入框中輸入文字(即inputkeyup事件發生時),vue會監聽到這個事件,找到對應的數據模型變量,修改變量值。

vue中雙向數據綁定的示例


  1. <div id="app-6">
  2. <p>{{ message }}</p>
  3. <input v-model="message">
  4. </div>

  1. var app6 = new Vue({
  2. el: '#app-6',
  3. data: {
  4. message: 'Hello Vue!'
  5. }
  6. })

自己實現雙向數據綁定的示例


  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>雙向綁定demoo</title>
  5. <meta charset="UTF-8">
  6. </head>
  7. <body>
  8. <div id="app">
  9. <input type="text" id="txt">
  10. <p id="show-txt"></p>
  11. </div>
  12. </body>
  13. <script>
  14. var model={}
  15. Object.defineProperty(model,'txt',{
  16. _txt: "",
  17. get:function(){
  18. return _txt
  19. },
  20. set:function(newValue){
  21. _txt = newValue
  22. document.getElementById('txt').value = newValue
  23. document.getElementById('show-txt').innerHTML = newValue
  24. }
  25. })
  26. document.addEventListener('keyup',function(e){
  27. model.txt = e.target.value
  28. })
  29. </script>
  30. </html>

這里要講到一個關鍵函數

Object.defineProperty 

Object.defineProperty 需要三個參數(object , propName , descriptor)

1 object 對象 => 給誰加
2 propName 屬性名 => 要加的屬性的名字 【類型:String】
3 descriptor 屬性描述 => 加的這個屬性有什么樣的特性【類型:Object】

descriptor 屬性描述

get一個給屬性提供getter的方法,如果沒有getter則為undefined。該方法返回值被用作屬性值。默認為undefined
set一個給屬性提供setter的方法,如果沒有setter則為undefined。該方法將接受唯一參數,并將該參數的新值分配給該屬性。默認值為undefined

Vue與模板引Thymeleaf擎對比

顯示變量值(Vue)


  1. <div id="app">
  2. {{ message }}
  3. </div>

 顯示變量值(Thymeleaf)


  1. <div id="app" th:text="${message}">
  2. </div>

替換Html(Vue)


  1. <div id="app" v-html="content">
  2. </div>

替換Html(Thymeleaf)


  1. <div id="app" th:html="${content}">
  2. </div>

綁定屬性(Vue)

<img :src="imgUrl" :id="newId"/>

綁定屬性(Thymeleaf)

<img th:attr="id=${newId},src=${imgUrl}"/>

隱藏顯示區塊(Vue)


  1. <div id="app" v-if="show">
  2. 這是一個區塊
  3. </div>

隱藏顯示區塊(Thymeleaf)


  1. <div id="app" th:if="${show}">
  2. 這是一個區塊
  3. </div>

遍歷列表數據-帶索引(Vue)


  1. <ul id="app">
  2. <li v-for="(item, index) in dataList">
  3. {{ index }} - {{ item.message }}
  4. </li>
  5. </ul>

 遍歷列表數據-帶索引(Thymeleaf)


  1. <ul id="app">
  2. <li th:each="item, stat: ${dataList}">
  3. {{ stat.index }} - {{ item.message }}
  4. </li>
  5. </ul>

引入其他文件內容(vue)

在vue中,可復用的單元塊被稱為組件,定義組件


  1. <template>
  2. <button v-on:click="count++">You clicked me {{ count }} times.</button>
  3. </template>
  4. <script>
  5. export default {
  6. name: "button-counter"
  7. data(){
  8. count: 0
  9. }
  10. }
  11. </script>

 引入組件


  1. <div id="components-demo">
  2. <button-counter></button-counter>
  3. </div>

引入其他文件內容(Thymeleaf)

被導入模塊index.html:


  1. <div th:fragment="head">
  2. 這是網頁頭
  3. </div>

在其它頁面導入index.html中的head模塊:

<div th:include="index::head"></div>

由此可見在Html層面上來講,vue和后臺的模板引擎,整個設計方向是一樣。都是使用特定屬性標簽,來描述如何把數據映射到視圖上。

Vue的頁面定義基石-Options API

Options API,即大家常說的選項API,即以vue為后綴的文件,通過定義methodscomputedwatchdata等屬性與方法,共同處理頁面邏輯

可以看到Options代碼編寫方式,如果是組件狀態,則寫在data屬性上,如果是方法,則寫在methods屬性上...

這種形式的頁面定義類似一個配置文件,定義了頁面的數據模型和行為

Vue中的代理運用

代理服務器:所謂代理服務器就是位于發起請求的客戶端與原始服務器端之間的一臺跳板服務器,是以正向代理可以隱藏客戶端,反向代理可以隱藏原始服務器。

代理分為正向代理和反向代理,下面就以我們實際使用中的示例講解下這兩種代理方式的區別。

nginx反向代理

這樣對于瀏覽器而言,瀏覽器只需要訪問代理服務器,就可以達到同時訪問兩個網站的目的

 

我們看下實際場景下的nginx的配置 


  1. server {
  2. listen 4503;
  3. server_name vue.izkml.com;
  4. access_log "pipe:rollback logs/gov-manage-new-vue/access_log interval=1d baknum=7 maxsize=2G" main;
  5. # 接口代理
  6. location /api {
  7. #去除 /api前綴
  8. rewrite ^.+api/?(.*)$ /$1 break;
  9. # 轉發到 117.71.53.199:50020端口上
  10. proxy_pass http://117.71.53.199:50020;
  11. proxy_buffering off;
  12. }
  13. # 頁面文件代理
  14. location / {
  15. # 直接去本地文件讀取文件路徑
  16. root html/gov-task-supervison;
  17. index index.html index.htm;
  18. if (!-e $request_filename) {
  19. rewrite ^/(.*) /index.html last;
  20. break;
  21. }
  22. }
  23. }

其中可以看到,主要分為接口代理和頁面代理兩部分
1. 如果是/api前綴的請求,則去除/api前綴,轉發到后臺網關端口上
2. 其他情況下,請求的為頁面內容,在html/gov-task-supervison文件夾中讀取文件內容

vue代理(正向代理)

 


  1. devServer: { // 支持webPack-dev-server的所有選項
  2. port: 8888, // 端口號
  3. host: '0.0.0.0',
  4. https: false,
  5. open: true, //配置自動啟動瀏覽器
  6. proxy: {
  7. '/api': {
  8. // 轉發地址
  9. target: 'http://117.71.53.199:50020', //測試環境
  10. changeOrigin: true,
  11. ws: true,
  12. // 去除/api前綴
  13. pathRewrite: {
  14. '^/api': ''
  15. }
  16. }
  17. }
  18. }

這里主要看的是proxy字段,其中定義了規則

1. 如果是/api前綴的請求,則去除/api前綴,轉發到后臺網關端口上
2. 其他情況下,請求的為頁面內容,直接讀取本地項目路徑下面的頁面內容 **(隱式包含)**

Vue特性能力-filter

Vue.js 允許你自定義過濾器,可被用于一些常見的文本格式化

應用場景: 前端常量翻譯


  1. <el-tag v-if="scope.row.status" class="round" size="small" >
  2. {{scope.row.status | CodeMaster('TASK_STATUS')}}
  3. </el-tag>

  1. Vue.filter('CodeMaster', function (value, type) {
  2. return Vue.prototype.$codeMaster.getCodeValue(type, value);
  3. })

在上面的代碼中,我們在模板html中,添加了filter的調用,并傳入了一個參數。
在vue進行html生成的過程中,會調用相應的filter,根據自定義的規則,完成文本格式化操作。




藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

分享此文一切功德,皆悉回向給文章原作者及眾讀者.

轉自:csdn
免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

藍藍設計www.lapeinture.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

日歷

鏈接

個人資料

藍藍設計的小編 http://www.lapeinture.cn

存檔

午夜激情视频在线观看| 国产伦精品一区三区视频| 久久福利影视| 国产一区二区福利久久| 黄视频网站在线观看| 成人高清视频免费观看| 亚洲不卡一区二区三区在线 | 日韩免费片| 精品国产一区二区三区久久久蜜臀| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 九九九国产| 欧美爱爱动态| 国产伦理精品| 精品美女| 国产a网| 超级乱淫黄漫画免费| 日本在线不卡视频| 欧美激情一区二区三区在线| 国产精品123| 天天色色色| 亚洲天堂免费| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品视频免费在线| 在线观看导航| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 青青青草影院 | 999久久狠狠免费精品| 国产成人精品一区二区视频| 99久久精品国产高清一区二区| 国产高清视频免费观看| 精品国产三级a∨在线观看| 91麻豆国产级在线| 国产a网| 亚洲第一色在线| 欧美激情中文字幕一区二区| 久久精品大片| 精品在线视频播放| 国产一区二区精品久久91| 香蕉视频三级| 欧美电影免费| 国产精品自拍亚洲| 精品国产一区二区三区精东影业| 色综合久久天天综合观看| 日韩在线观看视频网站| 高清一级片| 国产不卡福利| 免费一级生活片| 九九免费精品视频| 99久久精品国产高清一区二区 | 中文字幕一区二区三区 精品| 日韩免费片| 精品国产一区二区三区久久久狼| 日本免费区| 韩国毛片免费| 国产麻豆精品高清在线播放| 亚洲精品中文一区不卡| 青青久在线视频| 精品国产三级a∨在线观看| 精品视频免费观看| 99色精品| 黄视频网站免费观看| 国产一区免费观看| 成人高清免费| 成人影视在线播放| 精品久久久久久中文字幕一区 | 你懂的在线观看视频| 欧美激情一区二区三区中文字幕| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 香蕉视频久久| 午夜在线亚洲男人午在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚洲 男人 天堂| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日韩中文字幕一区二区不卡| 精品在线观看国产| 国产麻豆精品视频| 美女免费黄网站| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 免费一级生活片| 久久国产影视免费精品| 九九热精品免费观看| 青青久在线视频| 国产麻豆精品高清在线播放| 久久精品欧美一区二区| 四虎精品在线观看| 久久99青青久久99久久| 一a一级片| 超级乱淫黄漫画免费| 欧美爱色| 沈樵在线观看福利| 国产不卡福利| 一级女性大黄生活片免费| 亚洲精品影院| 九九九在线视频| 亚欧成人毛片一区二区三区四区| 日本在线不卡免费视频一区| 成人免费观看网欧美片| 免费国产在线观看| 国产91视频网| 国产91精品一区二区| 精品视频在线看| 尤物视频网站在线观看| 精品视频免费看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 午夜欧美福利| 韩国三级视频在线观看| 欧美另类videosbestsex| 国产精品1024永久免费视频 | 成人免费观看男女羞羞视频| 国产网站在线| 精品国产一区二区三区免费| 精品国产一区二区三区久久久狼| 高清一级做a爱过程不卡视频| 99久久精品国产片| 可以免费在线看黄的网站| 99热热久久| 99久久精品国产高清一区二区 | 欧美18性精品| 久久精品店| 国产不卡在线看| 精品久久久久久免费影院| 国产不卡福利| 日韩免费在线视频| 四虎论坛| 免费的黄视频| 成人a大片高清在线观看| 国产91视频网| 精品视频免费看| 国产高清在线精品一区a| 国产不卡精品一区二区三区| 四虎影视久久久| 久久国产影院| 国产视频一区二区在线观看| 久久精品店| 日本伦理网站| 韩国妈妈的朋友在线播放| 国产亚洲男人的天堂在线观看| 国产不卡在线看| 国产网站在线| 午夜在线亚洲| 久久精品欧美一区二区| 99久久网站| 欧美a级大片| 国产福利免费观看| 天天色色色| 99热精品一区| 国产视频一区二区在线观看| 91麻豆精品国产自产在线| 尤物视频网站在线观看| 欧美日本韩国| 欧美a级成人淫片免费看| 国产高清视频免费| 久久精品免视看国产明星| 高清一级做a爱过程不卡视频| 国产网站在线| 久久成人性色生活片| 四虎久久精品国产| 精品国产三级a∨在线观看| 一级毛片视频在线观看| 午夜欧美福利| 国产极品精频在线观看| 国产福利免费视频| 亚洲精品影院久久久久久| 日本免费看视频| 午夜欧美福利| 中文字幕一区二区三区精彩视频 | 欧美激情一区二区三区视频高清| 国产一区二区精品久久91| 欧美一级视| 毛片高清| 99热热久久| 一本伊大人香蕉高清在线观看| 日本特黄特色aa大片免费| 国产成人精品综合久久久| 99久久精品国产国产毛片| 亚州视频一区二区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久成人亚洲| 国产麻豆精品免费密入口| 欧美一级视| 久久成人亚洲| 国产一区二区福利久久| 天天色色网| 久久成人性色生活片| 成人在激情在线视频| 日韩免费在线观看视频| 国产伦精品一区二区三区在线观看| 久久精品免视看国产明星| 亚洲 激情| 午夜在线亚洲男人午在线| 国产91丝袜在线播放0| 成人影院久久久久久影院| 二级片在线观看| 黄色免费网站在线| 精品视频在线看| 亚洲天堂免费| 一a一级片| 日韩av东京社区男人的天堂| 日韩中文字幕在线观看视频| 精品毛片视频|