vue 各組件 使用 Demo

環境搭建

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

假設你已經通讀vue官方文檔(文檔都沒讀一遍(至少),那不建議動手擼碼),在大致了解vue是什么東西,有什么用,核心概念之后我們就可以開始著手學習vue。首先搭建環境。

學習vue,我的建議是通過官手腳手架起步。

>>>Installation$ npm install -g vue-cli>>Usage$ vue init <template-name> <project-name>>>>>Example:$ vue init webpack my-project

根據需要安裝插件yes or no,一直回車,腳手架就生成了。接下來剖析腳手架結構。

腳手架結構剖析

再開始寫項目之前,我們需要弄清什么地方寫什么代碼。

build文件夾

webpack配置文件。此處配置webpack規則。整個項目是通過webpack支持的。比如你要使用less,你需要在webapck規則里使用less。

src 文件夾

擼碼的地方~基本你所有的代碼都在這一塊完成。

assets文件夾

存放web中引用的圖片 媒體資源。

components文件夾

主要存放可復用組件,你可以在任意頁面中復用這些組件。

router文件夾

index.js 路由配置文件。在此處配置各個頁面的跳轉引用關系。

APP.vue

這里看一看做頁面的根部。我們可以在這個頁面進行一些css reset 操作。

main.js

根邏輯,頁面加載首先會加載這份js文件。

static文件夾

主要存放外部引用資源。比如xxx.min.js

index.html

vue是spa應用,所以只有一個入口,也就是index文件,這里我們進行一些不可更改資源(比如某某庫)的引用,和html頁面meta 、title之類的設定。

vue核心概念

vue的核心概念是‘數據驅動’,假如我們需要切換view層,我們應該修改的是數據。下面我會分享一些我自己在學習vue中收獲的一些實例,大家自行感受。

實例展示的是方法論,概念性一樣的東西,不要被例子局限,要將思維擴散出去。知識點學習還是看官方文檔為主。

vue如何處理dom顯示,樣式切換,動態樣式

實例

watch 和 computed的 簡析

vue提供了2個動態監測data的函數,一個是watch,一個是computed。

watch: 主要監測已經存在的data,處理data變化后的鉤子

computed: 處理一個已存在的data,返回一個data

實例

vuex 是一個比較好的例子,可以用來學習監測,什么時候用什么方法去處理這些變化。

v-for 列表渲染機制

v-for 是我認為vue中一個非常非常強大的指令,所有規律性動態數據的展示,都可以用for指令來完成。
v-for是非常強大,可以追蹤循環體內任意一個值的變化,針對變化來單獨渲染。

v-for 建議仔細閱讀官方文檔,而不是通讀。在項目中,我們應該養成習慣。對于可變化的,規律性數據都采用for指令渲染。 我之所以又把for指令寫了一遍,是因為我在開始寫vue時,根本就沒有活用for指令的簡便和強大,還是古老的ul li 循環,繁雜的事件綁定委托。估計人類本性對一個東西還不太了解的時候會習慣性的用自己熟悉的方式去操作的原因。

嵌套數據展示和靈活操作

vue中引入組件以及父子組件的數據交互

關于組件,任意vue文件你都可以看做一個組件。 在項目中我們一般使用的應該都是單文件組件,單文件組件與頁面結構無異,是具有完整功能的一個模塊。比如一個評論框,你就可以剝離成一個組件,在任意頁面文件中引入這個組件。

父組件(頁面)

子組件

vue過濾器

在有一些業務場景需要對數據進行一些轉換,比如后端圖片地址的前綴匹配,這個時候filters就派上大用場了。看個例子感受一下。

過濾器的使用

vue路由

路由對于spa應用的重要性不言而喻,整個應用的頁面關系都是通過路由定義的。我們先來看看一個路由文件大致是什么樣子

vue路由

vue 使用history模式,我們就可以去使用history的API,需要在路由配置中啟用。默認hash模式,history模式也是一般應用的常用模式。

//切換當前地址,同 history.replaceStatethis.$router.replace({name: 'list'})  
//向history推入一級,同history.pushthis.$router.push({name: 'list'})  
//添加參數this.$router.push({name: 'list', query: {setting: 'setting'}})//監測路由變化
watch:{'$route': function () {//處理事件}},》》》》可以在頁面任意處打印this.$route查看路由對象

vue的路由配置相對來說,是比較簡單的,閱讀一遍router文檔,就可以快速上手。

路由是非常重要的一塊,在動手開始寫你的vue項目之前,你非常有必要通讀一遍路由文檔。而不是碰到問題再去解決。嵌套路由,動態路由會對你的開發起到非常有用的幫助。官方路由

可監測的全局變量——vuex

項目開發中,往往我們會有一些全局變量,但是正常全局變量,vue是不能監測的,這個時候vuex就派上用場了。?vuex官方文檔

npm install vuex --save//安裝好vuex后,我們先新建一個store文件夾,存放vuex相關文件,如下圖所示
>>>>> index.jsimport Vue from 'vue'
import Vuex from 'vuex'
import modulesApp from './modules/app'  //引入一個app模塊
Vue.use(Vuex)let store = new Vuex.Store({strict: process.env.NODE_ENV !== 'production',modules: {app: modulesApp}
})export default store———————————————— 分割線——————————————————>>>>>app.js    //這里是個我的示例結構,可以查閱文檔選擇自己喜歡的書寫方式let state = {height: document.documentElement.scrollHeight + 'px',total: 1,list: [],};let getters = {};let mutations = {height: state => state.height = document.documentElement.scrollHeight + 'px',totalChange (state, total) {state.total = total},listChange (state, list) {state.list = list},};let actions = {};export default {state,getters,mutations,actions
}

vuex

如何開始寫第一個demo項目

看完以上內容,想必大家對vue都有了進一步的了解。在通讀官方文檔后,我們對vue都有一個大致的了解,這樣其實對于新手而言還是沒有方向去寫一個demo出來的,我們往往想寫個漂亮的demo,但這樣就必須花大量時間去寫html和css,這點博主深有體會,看了2遍文檔后還是不知道怎么去入手寫個demo練手。這里博主有個建議就是:

專注于vue本身,而不是花過多的時間去寫html,css。

以上我們已經搭建了一個vue開發環境,接下來就是找一款心儀的UI組件庫,博主這里推薦iview,個人感覺挺漂亮。然后就是構思你的demo要寫什么,好了,拖組件搭UI,開始寫真正寫項目代碼把,把更多時間花在vue學習之上。

?

轉自:https://www.cnblogs.com/buzhiqianduan/p/7620102.html

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

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

相關文章

Dropbox推獨立應用,公司估值已達100億美元

摘要&#xff1a;Dropbox剛獲得5億美元的新一輪融資&#xff0c;其估值已高達100億美元&#xff0c;現在又推出針對云服務的獨立應用Carousel&#xff0c;不久之后&#xff0c;還會有應用陸續推出&#xff0c;隨著美國前國務卿賴斯的加盟&#xff0c;Dropbox在云市場的表現異常…

SQL經典面試題(二)

有3個表S&#xff0c;C&#xff0c;SCS&#xff08;SNO&#xff0c;SNAME&#xff09;代表&#xff08;學號&#xff0c;姓名&#xff09; //主鍵&#xff1a;SNO //多個人&#xff0c;多門課 3張表 &#xff0c;SC 關系表C&#xff08;CNO&#xff0c;CNAME&#xff0c;…

進程間通信之信號he信號量

信號的篇幅較少&#xff0c;就把他和信號量放在一起了。先講講他們之間的區別&#xff1a; 1.信號&#xff1a;&#xff08;signal&#xff09;是一種處理異步事件的方式。信號時比較復雜的通信方式&#xff0c;用于通知接受進程有某種事件發生&#xff0c;除了用于進程外&…

開源當自強:我們不是“便宜貨”

之前人們爭相使用開源軟件&#xff0c;無非是因為它便宜、好用、易得&#xff0c;不過根據最新的開源軟件調查顯示&#xff0c;人們使用開源軟件最主要的原因還是看重它的高質量。 成本低是很過公司參與開源項目的最主要原因之一&#xff0c;而現在他們視開源是一條通往創新、省…

前端學習:Vue.js基本使用

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Vue教程文檔&#xff1a; https://cn.vuejs.org/v2/guide/ 定義 實例&#xff1a; new Vue() 掛載點: el 數據&#xff1a;data 模…

PWE

Obstacle Override Logic The obstacle override logic provides the possibility to override obstacle within a window movement by selective switching off the anti-trap functionality.轉載于:https://www.cnblogs.com/dannykong/p/11151813.html

進程間通信之消息隊列

一、什么是消息隊列 unix早期通信機制之一的信號能夠傳送的信息量有限&#xff0c;管道則只能傳送無格式的字節流&#xff0c;這無疑會給應用程序開發帶來不便。消息隊列&#xff08;也叫做報文隊列&#xff09;則克服了這些缺點。 消息隊列就是一個消息的鏈表。可以把消息看…

“ 愿我如星君如月,夜夜流光相皎潔 ...”

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 永遠相信愛情 ... 從一而終 ... --------------------------------------------------------------------------- 后記&#xff1a;2…

python內建函數和工廠函數的整理

內建函數參閱&#xff1a; https://www.cnblogs.com/pyyu/p/6702896.html 工廠函數&#xff1a; 本篇博文比較粗糙&#xff0c;后續會深入整理轉載于:https://www.cnblogs.com/qiang-upc/p/11155786.html

顯卡天梯圖:2014最新顯卡性能天梯圖

隨著電腦游戲的推廣&#xff0c;很多用戶都喜歡上了電腦網絡游戲&#xff0c;所以組裝電腦用戶在裝機的時候&#xff0c;會考慮電腦配置的游戲性能&#xff0c;要提高電腦配置游戲性能首要條件就是顯卡性能要強&#xff0c;如果顯卡性能不佳&#xff0c;那么其它方面性能再強&a…

進程間通信之分別用共享內存和信號量實現賣票

利用共享內存實現的賣票系統&#xff1a; 利用flag來保證同一時間只有一個程序使用內存&#xff0c;使用結束還原。 #include <stdio.h> #include <sys/ipc.h> #include <sys/shm.h> #include <sys/types.h> #include <string.h> #include <…

shiro 的 @RequiresPermissions 注解使用

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 權限控制是shiro最核心的東西 Shiro權限聲明通常是使用以冒號分隔的表達式。一個權限表達式可以清晰的指定資源類型&#xff0c;允許的…

【顯卡天梯圖】2014年最新顯卡天梯圖 – 【迄今最全系列顯卡】

【顯卡天梯圖】2014年最新顯卡天梯圖 – 【迄今最全系列顯卡】 隨著電腦游戲的推廣&#xff0c;很多用戶都喜歡上了電腦網絡游戲&#xff0c;所以組裝電腦用戶在裝機的時候&#xff0c;會考慮電腦配置的游戲性能&#xff0c;要提高電腦配置游戲性能首要條件就是顯卡性能要強&am…

原理系列:Spark1.x 生態圈一覽

Spark生態圈&#xff0c;也就是BDAS&#xff08;伯克利數據分析棧&#xff09;&#xff0c;是伯克利APMLab實驗室精心打造的&#xff0c;力圖在算法&#xff08;Algorithms&#xff09;、機器&#xff08;Machines&#xff09;、人&#xff08;People&#xff09;之間通過大規模…

SpringMVC 注解 : @ModelAttribute

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 SpringMVC 注解 &#xff1a; ModelAttribute 的用法如上。 轉自&#xff1a;https://blog.csdn.net/lovesomnus/article/details/78873…

網絡編程項目(聊天室項目)

一、實現目標 一個在Linux下可以使用的聊天軟件&#xff0c;要求至少實現如下功能&#xff1a; 1. 采用Client/Server架構 2. Client A 登陸聊天服務器前&#xff0c;需要注冊自己的ID和密碼 3. 注冊成功后&#xff0c;Client A 就可以通過自己的ID和密碼登陸聊天服務器 4…

CPU天梯圖:2014年最新CPU性能天梯圖

用戶在組裝電腦的前期需要考慮怎么選擇適合自己的CPU&#xff0c;現在CPU性能強的比較貴&#xff0c;便宜的CPU性能又比較差&#xff0c;選擇性價比高并且適合自己的處理器還真是比較花心思。在2014年的時候&#xff0c;最主流熱門的AMD處理器是AMD A10-6800K&#xff0c;最新推…

解決: idea 修改 jsp 后,頁面刷新無效

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 idea 修改 jsp 后瀏覽器訪問無效。 解決&#xff1a;進入 idea 配置 修改部署方式&#xff1a; 修改 更新文件方式&#xff1a; OK了。

Python中的getpass模塊

getpass模塊用于輸入密碼時&#xff0c;隱藏密碼字符 代碼 import getpass name input("請輸入你的名字&#xff1a;") passwd getpass.getpass("請輸入你的密碼&#xff1a;")print (name,passwd)   首先我們要import引入getpass模塊&#xff0c;然后…

C++之命名空間

為什么要使用命名空間&#xff1f; 一個中大型軟件往往由多名程序員共同開發&#xff0c;會使用大量的變量和函數&#xff0c;不可避免地會出現變量或函數的命名沖突。當所有人的代碼都測試通過&#xff0c;沒有問題時&#xff0c;將它們結合到一起就有可能會出現命名沖突。 …