使用Vue開發網站之路2-多元件通訊2(利用Vuex進行資料傳遞)
這裡還是非父子元件間的通訊
其實我也不喜歡看別人的大段程式碼,但這是最完整的,以後肯定有用(完整程式碼貼在最後面,自己看)
主要實現是使用vuex的公共空間存放資料,這個時候要問,那為什麼不之間用一個物件啊,其他也是可以的,但是vuex可以檢測你資料的變化,這個後期有用。
繼續,主要實現是新建一個Vuex.Store,然後在mutations裡面編寫你要修改資料的方法。再在在要修改資料的元件裡使用store.commit("setName",value);,最好不要直接賦值,為了可以檢測你的資料變化,vue本來就資料驅動的框架。另一個元件想要獲取資料的話直接store.state.userName這麼一下就可以了。
題外話:(其實vuex我現在還用的不夠多,因為要實現的功能簡單。也就先用用,後面肯定會繼續深入的。其實有時候覺得會用一個框架真的沒什麼了不起的,真正厲害的是知道它為什麼這麼涉及,怎麼設計的,如果是我的話,用現有的知識能不能做出一樣的效果。就像java為什麼只有單繼承,大學裡老師可沒教,也就是後面看設計模式的時候才知道,哦,原來是為了實現組合。)
//使用vuex在不關聯元件之間進行通訊 const store = new Vuex.Store({ state:{ userName:"" }, mutations:{ setName(state,name) { state.userName = name; } } }) //密碼 Vue.component("user-password",{ props:["value"], template:'<div class="input_message">password:\ <input v-bind:value="value" v-on:blur="savePassword($event.target.value)" v-on:input="updateValue($event.target)" v-on:click="targetClick" type="password" class="right_box" v-bind:placeholder="placeholder"></input>\ </div>', data:function() { return { placeholder:ls.enterPassword } }, methods:{ targetClick:function(e) { var target = $(e.target); target.removeClass("is_empty"); }, updateValue:function(target) { this.$emit("input",target.value); var target = $(target); target.removeClass("is_empty"); }, savePassword:function(value) { store.commit("setName",value); } } }); //再次密碼 Vue.component("user-password-again",{ props:["value"], template:'<div class="input_message">password:\ <input v-bind:value="value" v-on:blur="checkPassword($event.target.value)" v-on:input="updateValue($event.target)" v-on:click="targetClick" type="password" class="right_box" v-bind:placeholder="placeholder"></input>\ <span class="psResult" v-html="checkResult"></span>\ </div>', data:function() { return { placeholder:ls.enterPasswordAgain, checkResult:"" } }, methods:{ targetClick:function(e) { var target = $(e.target); target.removeClass("is_empty"); }, updateValue:function(target) { this.$emit("input",target.value); var target = $(target); target.removeClass("is_empty"); }, //失去焦點後檢驗兩個密碼是否相等 checkPassword:function(value) { if(value == store.state.userName) { this.checkResult = "兩次結果相同"; } } } });
相關推薦
使用Vue開發網站之路2-多元件通訊2(利用Vuex進行資料傳遞)
這裡還是非父子元件間的通訊 其實我也不喜歡看別人的大段程式碼,但這是最完整的,以後肯定有用(完整程式碼貼在最後面,自己看) 主要實現是使用vuex的公共空間存放資料,這個時候要問,那為什麼不之間用一個物件啊,其他也是可以的,但是vuex可以檢測你資料的變化,這個後期有用。
USB開裝置開發學習之二: USB具體通訊過程(含列舉過程)
原文:https://blog.csdn.net/go_str/article/details/80802452 前言 現在剛開始接觸USB的開發,零零散散學習了一些USB基礎知識,但是卻得不到連貫。在這個學習過程中首先困惑的就是USB
php原始碼之路第七章第三節 (PHP程式碼的加密解密)
PHP語言作為指令碼語言的一種,由於不需要進行編譯,所以通常PHP程式的分發都是直接釋出原始碼。對於一些開源軟體來說,這並沒有什麼問題,因為它本來就希望有更多的人閱讀程式碼,希望有更多的人蔘與進來,而對於商業程式碼來說,這卻是一個不太好的訊息,不管是從商
後端之路一:搭建簡單伺服器(SpringBoot+Gradle實現通用Mapper)
注意:本文參考網上大神寫的一個Mybtais通用框架而實現的,框架地址:http://git.oschina.net/free/Mapper2/blob/master/wiki/mapper/4.Spring4.md 本文思路主要使用SpringBoot+Mybatis+G
Android之利用EventBus進行資料傳遞
在專案中,不可避免的要在兩個頁面之間進行資料的傳遞,就算不傳遞,也需要進行重新整理之類的,我們根據Google提供的庫類方法,也是可以做的,主要有廣播broadcastreceiver,startactivity方法或者是application例項等等,都是可以工作的(只要
【vue大師晉級之路第一集:Vue基礎】第2章——Vue 例項
建立一個 Vue 例項 每個 Vue 應用都是通過用 Vue 函式建立一個新的 Vue 例項開始的: var vm = new Vue({ // 選項 }) Vue 應用由一個通過 new Vue 建立的根 Vue 例項,以及可選的巢狀的、可複用的元件樹組成。
專案實戰之vue爬坑之路:vue框架中如何註冊全域性公共過濾器filter、全域性公共外掛、全域性公共元件component
專案需求: 在我們的實際專案的開發中,經常會遇到一些可以重複利用的方法和元件,比如:我們在一個專案中可能會經常用到格式化時間的方法。這個時候就需要我們把這個方法封裝起來,註冊成一個全域性的過濾器,在整個專案中都可以使用,這樣既可以提高程式碼的使用效率,也便於我們
【vue大師晉級之路第二集:深入瞭解元件】第3章——自定義事件
事件名 不同於元件和 prop,事件名不存在任何自動化的大小寫轉換。而是觸發的事件名需要完全匹配監聽這個事件所用的名稱。舉個例子,如果觸發一個 camelCase 名字的事件: this.$emit('myEvent') 則監聽這個名字的 kebab-case
【vue大師晉級之路第二集:深入瞭解元件】第4章——插槽
插槽內容 Vue 實現了一套內容分發的 API,這套 API 基於當前的 Web Components 規範草案,將 < slot> 元素作為承載分發內容的出口。 它允許你像這樣合成元件: <navigation-link url="/prof
【vue大師晉級之路第二集:深入瞭解元件】第5章——動態元件 & 非同步元件
在動態元件上使用 keep-alive 我們之前曾經在一個多標籤的介面中使用 is 特性來切換不同的元件: <component v-bind:is="currentTabComponent"></component> 當在這些元件之間
Vue 爬坑之路(二)—— 元件之間的資料傳遞
Vue 的元件作用域都是孤立的,不允許在子元件的模板內直接引用父元件的資料。必須使用特定的方法才能實現元件之間的資料傳遞。 首先用 vue-cli 建立一個專案,其中 App.vue 是父元件,components 資料夾下都是子元件。 一、父元件向子元件傳遞資料
偏前端-vue.js學習之路初級(二)元件化構建
vue.js 元件化構建 元件系統是 Vue 的另一個重要概念,因為它是一種抽象,允許我們使用小型、自包含和通常可複用的元件構建大型應用。仔細想想,幾乎任意型別的應用介面都可以抽象為一個元件樹: 一、使用元件 1.元件的全域性註冊--可以使用 Vue.compon
iOS開發之NSLocalizedString,多個本地化語言(Xcode9.2)
一、系統中巨集定義的NSLocalizedString,如圖: 第一個引數key是從Localizable.strings這個檔案中讀取對應的key-value值。 第二個引數comment可以是nil,可以是一段為空的字串,也可以是對key的註釋。 二、NSLoc
Python之路第二天,基礎2-基本數據類型
cheng python ech odi lun ron zid ast aof %E5%BE%AE%E4%BF%A1%E5%85%AC%E5%85%B1%E5%8F%B7%E7%9A%84PHP%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80%E7
Android開發學習之路--異步消息Handler,Message,Looper和AsyncTask之初體驗
被調用 project 輸入 gettext npos article app sso 音樂播放 在簡易音樂播放器中。用了Handler。也沒有過多地去研究學習,這裏再學習下android下的異步消息處理機制。這裏用了Handler主要是在線程中不能更新UI
Android開發學習之路--圖表實現(achartengine/MPAndroidChart)之初體驗
bundle 喜歡 嵌入式linux Y軸 tid ren sca ref java代碼 ??已經有一段時間沒有更新博客了,在上周離開工作了4年的公司,從此不再安安穩穩地工作了。很多其它的是接受挑戰和實現自身價值的提高。離開了嵌入式linux,從此擁抱移
[js高手之路]深入淺出webpack教程系列2-配置文件webpack.config.js詳解
基本用法 tle webpack 函數 ges 配置 ref 高手之路 pack 接著上文,重新在webpack文件夾下面新建一個項目文件夾demo2,然後用npm init --yes初始化項目的package.json配置文件,然後安裝webpack( npm inst
翻譯(六)——T-SQL的進階之路:超過基礎的2級水平:寫子查詢
相關 完整 圖像 reg 想要 試驗 releases 驗證 不用 T-SQL的進階之路:超過基礎的2級水平:寫子查詢 格雷戈裏·拉森(Gregory Larsen),2016/01/01(第一次出版:2014/01/29) 該系列 這篇文章是樓梯系列的
Vue 爬坑之路(一)—— 使用 vue-cli 搭建項目 (增補)
web http class 模板 clas ebp 搭建 com png cd 指定好安裝目錄 vue init webpack 項目名稱 執行 vue vue list 查看可應用模板 vue init webpack +名字
編程之路:多態和綁定與非綁定方法
SM 可執行文件 bst sql 走起 view ont 們的 self 多態 多態是指一類事物有多種形態 動物有多種形態:人、狗、豬 import abc class Animal(metaclass=abc.ABCMeta): #同一類事物:動物 @abc