Vue總結

  1 Vue 前端集成框架 用於分離項目前端內容,實現先後端分離,有獨立服務器?在哪?服務器or客戶端?
  2 算法
  3     單頁面實現漸進式控制 相似編程語言中的解釋型語言
  4 知識
  5     單頁面應用組件化開發
  6     Django項目分爲:
  7         先後臺不分離項目:
  8             1)後臺渲染頁面:模板語音 {{}} {%%}
  9             2)csrf-token => form post 請求
 10             3)render、HTTPResponse、redirect => JSONResponse
 11             4)ajax => 頁面的局部刷新
 12         
 13         先後臺分離項目:
 14             1)前臺頁面本身渲染 - 本身搭建運行的服務器
 15             2)ajax完成數據請求
 16             3)drf - django rest framework - restful - 接口
 17             4)vue - 數據驅動
 18     DOM驅動
 19         JQ: 內容 樣式 事件 操做:選擇器獲取標籤、設置鉤子(事件)、內容樣式操做
 20     數據驅動
 21         Vue
 22     cbv
 23     fbv
 24     MVVM設計模式 model view 把control分爲VC和MC
 25     Vue優勢
 26         1)單頁面 - 硬件要求低
 27         2)組件化開發
 28         3)數據驅動
 29         4)數據的雙向綁定
 30         5)虛擬DOM(內存DOM,效率高)
 31         6)輕量級
 32     new Vue({
 33         el:'',
 34         data:{
 35             var:'val'#{{var}}
 36         },
 37         methods:{
 38             func_name:function(){
 39                 #@event='func_name'
 40             }or
 41             func_name(){
 42                 #@event='func_name'
 43             }
 44         }
 45     })
 46     Vue學習分爲三部分:
 47         指令:寫在標籤的屬性區域內(插值表達式除外)
 48             
 49             文本指令:變量值在成員組的data中綁定
 50                 插值表達式:{{變量或表達式}}
 51                 v-text='var' #原文本會被msg替換
 52                 v-html='var'
 53                 v-once='var' #使文本固定,{{var}}與搭配使用
 54             事件指令: 組件methods中綁定
 55                 v-on:event='func_name' #監聽,‘v-on:’能夠簡寫爲‘@’
 56             斗篷指令 v-cloak #不太懂唉
 57             屬性指令:
 58                 v-bind:att='var or val'     #綁定,與實例成員data對應,能夠簡寫:
 59             表單指令:
 60                 v-model='var'   #雙向綁定,v-model存儲的值爲<input>標籤的value值,與實例成員data對應,改變同步
 61             條件指令:
 62                 v-if v-else-if v-else #v-if="條件表達式"
 63                 v-show='var'  #var==None 則隱藏
 64             循環指令:
 65                 v-for= '(val key index) in vars指令基於一個數組來渲染一個列表,可使用:key綁定來綁定其中數據以便加以改變
 66             todolist:
 67             
 68         實例成員:
 69             el 
 70             data
 71             methods 方法,通用與任何函數,響應式依賴:訪問一次緩存,執行一次函數#重過程
 72             computed 非響應式依賴:一次緩存可屢次訪問,只有當因變量改變,才執行一次函數#重結果
 73             watch 若是多個變量依賴於一個變量,多隨一 #偵聽器
 74             
 75         組件:組件是可複用的 Vue 實例,且帶有一個名字,通用選項有:data、computed、watch、methods 以及生命週期鉤子。
 76             根組件:經過new Vue 建立的Vue根實例,特有el選項
 77             子組件:做爲標籤使用,每使用一次建立一個新實例,爲了獨立維護組件data裏的變量,組件的 data 選項必須是一個函數,返回data對象:data:function(){return {count: 0}}
 78             全局註冊:Vue.component('my-component-name', { ... options ... }),註冊以後的全局使用
 79             局部註冊:
 80             父傳子 props:[]
 81             子傳父 $emit('func_name',var)
 82         
 83         Vue實例生命週期與鉤子:
 84             beforeCreate(){}
 85             created(){}
 86             beforeMount(){}
 87             mounted(){}
 88     Vue項目:
 89         目錄:element-ui   https://element.eleme.cn/#/zh-CN
 90             node_modules:項目依賴
 91             public:公用文件
 92                 favicon.ico:頁面標籤圖標
 93                 index.html:項目的惟一頁面(單頁面)
 94                 
 95             src:項目開發文件目錄
 96                 assets:靜態資源
 97                     css|js|img
 98                 components:小組件
 99                     *.vue
100                         export default{}?
101                 views:視圖組件
102                     *.vue
103                 App.vue:根組件
104                 main.js:主腳本文件
105                 router.js:路由腳本文件 - vue-router
106                 store.js:倉庫腳本文件 - vuex
107                 
108             *.xml|json|js:一系列配置文件
109             README.md:使用說明
110         功能:
111             vue-router:路由
112                 router.js 路由分發 
113                     路由傳參一、path:'url:id'; this.$route.params.id能夠拿到連接中 :變量 變量中的數據 $route數據$router路徑
114                     
115                 router-link:to 路由尋址
116                     二、<router-link :to="'/course/detail?id=' + course.id">; this.$route.query.id拿到參數
117                 router-view:視圖替換
118                     this.$router.go(-1)  //返回歷史記錄的前一頁
119             vuex:
120                 store.js 全局可訪問
121                 
122             vue-cookie:
123                 安裝:
124                     >: cd 項目目錄
125                     >: cnpm install vue-cookie --save  
126                 配置:
127                     main.js
128                         import cookie from 'vue-cookie'
129                         Vue.prototype.$cookie = cookie;
130                         
131                 使用:
132                     token是後臺返回的
133                     設置cookie
134                     this.$cookie.set(key, value, time)
135                     取出cookie
136                     this.$cookie.get(key)
137                     刪除cookie
138                     this.$cookie.delete(key)
139             axios:#Axios是一個HTTP 庫,能夠用在瀏覽器和 node.js 中。
140                 安裝:
141                     >: cd 項目目錄
142                     >: cnpm install axios --save
143                 配置:
144                     main.js
145                         import Axios from 'axios'
146                         Vue.prototype.$axios = Axios;
147                 跨域問題這裏解決:
148                     '''
149                     1)安裝django-cors-headers模塊
150 
151                     2)在settings.py中配置
152                     # 註冊app
153                     INSTALLED_APPS = [
154                         ...
155                         'corsheaders'
156                     ]
157                     3)添加中間件
158                     MIDDLEWARE = [
159                         ...
160                         'corsheaders.middleware.CorsMiddleware'
161                     ]
162                     4)容許跨域源
163                     CORS_ORIGIN_ALLOW_ALL = True
164                     '''
165                 先後端交互:
166                     GET:
167                         this.$axios({
168                             url: 'http://localhost:8000/test/data/',
169                             method: 'get',
170                             params: {
171                                 usr: 'zero',
172                                 pwd: '000'
173                             }
174                         }).then((response) => {
175                             console.log(response.data)
176                         }).error((error) => {
177                             console.log(error)
178                         });
179                     POST:
180                         this.$axios({
181                             url: 'http://localhost:8000/test/data/',
182                             method: 'post',
183                             data: {
184                                 username: 'owen',
185                                 password: '123'
186                             }
187                         }).then((response) => {
188                             console.log(response.data)
189                         }).error((error) => {
190                             console.log(error)
191                         }); 
192         element-ui
193             安裝:>: npm i element-ui -S
194             配置:
195                 main.js
196                     import ElementUI from 'element-ui' #js文件
197                     Vue.use(ElementUI)#全局使用,如Vue.user(Router)
198                     
199                     import 'element-ui/lib/theme-chalk/index.css';#樣式文件
200             使用:element-ui文件裏有大量組件及其內部小組件,vue模版中做爲標籤使用(至關於大量全局註冊的組件)。
相關文章
相關標籤/搜索