1. 程式人生 > >Vue元件傳輸資料的二種方法

Vue元件傳輸資料的二種方法

今天使用Vue做了一個小功能,用於展示自己的作品,如下圖,有三個模組,唐詩三百首,LeetCode演算法題和科目三考道,唐詩三百首是我用Node抓包抓的唐詩,LeetCode是一些LeetCode的演算法題,也是使用Nodejs抓包抓的,科目三考道是使用Canvas畫的考道圖,


此專案使用vue-cli 工具生成,標準的vue專案,其中的三個模組使用的是一個元件Panel 他的上外層是元件Helloworld ,為了學習父子間的通訊,Panel的展示資料全部由父級元件HelloWorld元件傳入.在每個Panel元件上使用自定義的屬性傳入資料 如:

<Panel :title="algorithm" 
:arrData="algorithmArr"></Panel>

使用" : " 來設定屬性, title是傳入子元件的標題,如,唐詩三百首,arrData是一個列表物件[{name: '行宮', author: '元稹', content: '寥落古行宮,宮花寂寞紅。白頭宮女在,閒坐說玄宗。', link: ''}] 

父元件的js如下


components 需要設定引入的子元件, 在頭部也需要import  Panel元件,

在子元件裡我們通過props屬性來獲取父級傳入的資料


如上圖  這樣子元件就能夠使用父級傳入的資料.

 對於子級向父級傳資料的 我們使用自定義的事件來實現

父級元件在使用子元件時 新增一個自定義事件如

<Panel :title="poerty" :arrData="poetryArr" @msgFunc="func"></Panel>
子元件裡在函式裡這樣寫 就可以出發這個msgFunc事件


這樣就實現了 子級觸發父級的一個事件,具體的業務處理邏輯操作在父級的func函式裡完成

相關推薦

Vue元件傳輸資料方法

今天使用Vue做了一個小功能,用於展示自己的作品,如下圖,有三個模組,唐詩三百首,LeetCode演算法題和科目三考道,唐詩三百首是我用Node抓包抓的唐詩,LeetCode是一些LeetCode的演算法題,也是使用Nodejs抓包抓的,科目三考道是使用Canvas畫的考道

Vue 頁面狀態保持頁面間資料傳輸的一方法

如果大家覺得有用,更多的模組請點選檢視 vue router給我們提供了兩種頁面間傳遞引數的方式: 動態路由匹配 程式設計式的導航 // 命名的路由 router.push({ name: 'user', params: { userId: 123 }}) // 帶查詢引數,變成 /re

Vue來進行移動Hybrid開發和客戶端間資料傳輸的一方法

如果大家覺得有用,更多的模組請點選檢視 即上一篇Vue 頁面狀態保持頁面間資料傳輸的一種方法,今天我們說說我們團隊是怎麼和客戶端進行互動。 為什麼到了今天,還要提hybrid開發,就我所在團隊從中獲得的好處有: 團隊較小、業務較重、迭代頻繁、需要緊急響應的團隊和專案比較適合用 使用單頁應用技術

vue debug 方法

console.log多了比較煩,用debug就比較清晰了。 可以快速履清程式碼執行的先後順序,驗證自己的想法是否正確,可以清楚的瞭解到變數的內容,不用在console.log了。 一,vue devtools 1,chrome應用商店安裝vue devtools擴充套件,並開啟

使用laravel開發網站時,如何實現前端導航欄共享資料簡單的方法

類似這種,在沒頁面都繼承main.blade.php導航檔案,有些人說了,資料如何進行共享呢,難道讓每個控制器都寫一遍方法嗎? 解決1:將多個控制器同時繼承Controller控制器,可以在: u

Vue 測試例項-元件巢狀方式

</div>', props: { data:Object } }); // 方式一:巢狀元件時用<slot></slot>, Vue.component("Itemlist1", { template: '<di

web.config/app.config敏感資料加/解密的方法

一.利用程式碼加解密 using System.Web.Configuration; //加密web.Config中的指定節 private void ProtectSection(string sectionName) { Configuration config = WebConfigurationMan

ASP.NET中dropdownlist 動態繫結資料方法

DataSet ds=new DataSet();SqlDataAdapter command=new SqlDataAdapter("",conn);...conn.Open();    //開啟資料庫連線command.SelectCommand.CommandText="Select a,b FROM 

Java使用默認瀏覽器打開指定URL的方法方法

new space uil 默認瀏覽器 des build process url eat 直接看代碼:方法一: 復制代碼 代碼如下: Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler htt

Vue元件通訊之:事件監聽函式$emit/$on/$off

在vue2.x版本中自定義時間都需要通過$emit/$on/$off函式來進行觸發、監聽和取消監聽。 如果瞭解過JavaScript的設計模式-------觀察者模式,一定知道dispatchEvent和addEventListener這兩個方法。Vue元件中也有與之類似的模式,子元件用$emi

Python 維建立與插入值的方法

1第一種 nums = [] rows = eval(input("請輸入行數:")) columns = eval(input("請輸入列數:")) for row in range(rows): nums.append([]) for column in range(co

8.vue元件之間資料互動

那麼現在問題來了,我現在是在index.vue獲取了服務端的資料,怎麼傳值到maincontent.vue?當然你也可以把獲取資料放在maincontent.vue,但假如有些資料同時在header,footer,maincontent.vue被引用,如果每個compnent都去請求,就太費效能了。這時候需要

微信公眾號支付介面(vue專案中,兩方法

第一種:引入微信js-sdk //在一個地方呼叫this.weixin()方法,比如說按鈕 //寫微信支付方法 weixin() { var that = this; var url=''; var params = {

vue陣列優化的兩方法track-by和key 這兩個有什麼區別

1.  v-bind:key="  " 是vue2.x提出的,1.x的寫法是track-by=" " 2、(1)vue1.x中v-for不能顯示重複資料,要在v-for的元素內定義track-by="$index",即以序號為索引,如此當增加或者刪除資料,view都會跟著改變

vue元件通訊的幾方式

最近用vue開發專案,記錄一下vue元件間通訊幾種方式 第一種,父子元件通訊 一.父元件向子元件傳值 1.建立子元件,在src/components/資料夾下新建一個Child.vue 2.Child.vue的中建立props,然後建立一個名為message的屬性

VUE元件定義的幾方式

(1)                 區域性註冊 var app ={ //app是元件的模板名 templete:'<div>我是元件的模板,但我不知道我是那個元件的模板,在這裡你可以敲出你想要顯示的內容 例

django 防止xss攻擊標記為安全的方法

str='<a href="/page?page=1">1</a>' 一,在前端模板語言中實現,只須用到幫助函式safe.如:   {{ str|safe }}   二,在後端views中實現:   from django.utils.safestring impo

關於兩個伺服器資料庫之間的資料方法實踐

以前資料庫和環境相關的都是開發之前都是開發LEADER 搞定了,今天自己搞本地資料庫做測試,由於表比較多,資料比較多, 所以在用了很多種資料同步的方法,現在總結下下面幾種方法的感受 1.通過轉儲SQL 檔案,通過轉儲表結構和資料SQL 檔案的方式 ,然後匯入到本地的資料庫    缺點:

mybatis學習之路----批量更新資料方法效率對比

點滴記載,點滴進步,願自己更上一層樓。 上節探討了批量新增資料,這節探討批量更新資料兩種寫法的效率問題。 實現方式有兩種, 一種用for迴圈通過迴圈傳過來的引數集合,迴圈出N條sql, 另一種 用mysql的case when 條件判斷變相的進行批量更新   下面進行實現

php 查詢php配置檔案php.ini所在路徑的方法

通常php.ini的位置在:      /etc目錄下或/usr/local/lib目錄下。 如果你還是找不到php.ini或者找到了php.ini修改後不生效(其實是沒找對),請使用如下辦法: 1.新建php檔案,寫入如下程式碼 <?php echo phpi