1. 程式人生 > >reactjs元件之間的傳值

reactjs元件之間的傳值

1、父元件向子元件傳值

// 父元件
var MyContainer = React.createClass({
  render: function() {
    return (
      <Intermediate text="where is my son?" />
    );
  }
});

// 子元件1:中間巢狀的元件
var Intermediate = React.createClass({
  render: function () {
    return (
      <Child text={this.props.text} />
    );
  }
});

// 子元件2:子元件1的子元件
var Child = React.createClass({
  render: function () {
    return (
      <span>{this.props.text}</span>
    );
  }
});

2、子元件向父元件傳值

// 父元件
var MyContainer = React.createClass({
  getInitialState: function () {
    return {
      totalChecked: 0
    };
  },
  onChildChanged: function (newState) {
    var newToral = this.state.totalChecked + (newState ? 1 : -1);
    this.setState({
      totalChecked: newToral
    });
  },
  render: function() {
    var totalChecked = this.state.totalChecked;
    return (
      <div>
        <div>How many are checked: {totalChecked}</div>
        <ToggleButton text="Toggle me"
          initialChecked={this.state.checked}
          callbackParent={this.onChildChanged}
          />
        <ToggleButton text="Toggle me too"
            initialChecked={this.state.checked}
            callbackParent={this.onChildChanged}
          />
        <ToggleButton text="And me"
          initialChecked={this.state.checked}
          callbackParent={this.onChildChanged}
          />
      </div>
    );
  }
});

// 子元件
var ToggleButton = React.createClass({
  getInitialState: function () {
    return {
      checked: this.props.initialChecked
    };
  },
  onTextChange: function () {
    var newState = !this.state.checked;
    this.setState({
      checked: newState
    });
    // 這裡要注意:setState 是一個非同步方法,所以需要操作快取的當前值
    this.props.callbackParent(newState);
  },
  render: function () {
    // 從【父元件】獲取的值
    var text = this.props.text;
    // 元件自身的狀態資料
    var checked = this.state.checked;

    return (
        <label>{text}: <input type="checkbox" checked={checked} onChange={this.onTextChange} /></label>
    );
  }
});
3、兄弟元件互相傳值:
// 定義一個容器
var ProductList = React.createClass({
    render: function () {
      return (
        <div>
          <ProductSelection />
          <Product name="product 1" />
          <Product name="product 2" />
          <Product name="product 3" />
        </div>
      );
    }
});
// 用於展示點選的產品資訊容器
var ProductSelection = React.createClass({
  getInitialState: function() {
    return {
      selection: 'none'
    };
  },
  componentDidMount: function () {
    this.pubsub_token = PubSub.subscribe('products', function (topic, product) {
      this.setState({
        selection: product
      });
    }.bind(this));
  },
  componentWillUnmount: function () {
    PubSub.unsubscribe(this.pubsub_token);
  },
  render: function () {
    return (
      <p>You have selected the product : {this.state.selection}</p>
    );
  }
});

var Product = React.createClass({
  onclick: function () {
    PubSub.publish('products', this.props.name);
  },
  render: function() {
    return <div onClick={this.onclick}>{this.props.name}</div>;
  }
});

相關推薦

angular2父子元件之間

元件結構如下: main.html <div class="row"> <div class="col-sm-2 col-md-2 catalog"> <app-catalog [input]="catalogmsg" (event)="getData(

**Vue父子元件之間:*

初學者總結。Vue父子元件之間傳值: 1.父元件到子元件的傳值: a,父元件引入元件並註冊完成: import PersonnelUpdate from “./PersonnelUpdate”; export default { components: { PersonnelUpdate }

vue非父子元件之間

記錄第一次做專案遇到的坑,可能說的有所欠缺,但是功能是實現的。 為了實現頭部的搜尋框,搜尋table表格中的資料,因為是兩個頁面,所以需要元件傳值。 首先,main.js中建立事件中心eventHub new Vue({ el: '#app',

React中子元件和父元件之間

最近公司的專案在用react,所以才開始接觸react,react和vue一樣,都是元件化的框架,那麼子元件和父元件之間怎麼傳值呢? 父元件向子元件傳值 ,父元件通過屬性的形式向子元件傳遞引數,子元件

Vue 父元件與子元件之間

一、父元件與子元件之間值傳遞步驟如下: 例如:我有一個父元件Myhome.vue 和一個子元件Header.vue 1、父元件呼叫子元件的時候,動態繫結屬性值 <v-myheader :title="title"></v-myheader> 2、在子元件使用&nb

Vue中父子、子元件之間

在Vue的框架開發的專案過程中,經常會用到元件來管理不同的功能,有一些公共的元件會被提取出來。這時必然會產生一些疑問和需求?比如一個元件呼叫另一個元件作為自己的子元件,那麼我們如何進行給子元件進行傳值呢。常見的就是父子元件,子父元件之間的傳值。父子元件的關係可以總結為 pro

React元件之間

處理 React 元件之間的交流方式,主要取決於元件之間的關係,然而這些關係的約定人就是你。 我不會講太多關於 data-stores、data-adapters 或者 data-helpers 之類的話題。我下面只專注於 React 元件本身的交流方式的講解。 React 元件之間交流的方式,可以分為以下

vue的元件之間方法

父元件 <template> <div> 這是父元件 <children v-bind:parentToChild="toChild" v-on:showChildMsg="formChild"></children> <

vue父子元件之間及函式中獲取props中的

實現vue的元件化,是很好,但是元件之間傳值也好,本來對vue的理解可能也較淺吧 一、父元件向子元件傳值 peopleName為要傳遞的值; 父元件:  <li v-bind:peopledetail="peopleName" keep-alive></l

Vue 元件之間

一、父元件向子元件傳遞資料 在 Vue 中,可以使用 props 向子元件傳遞資料。 子元件部分: 這是 header.vue 的 HTML 部分,logo 是在 data 中定義的變數。 如果需要從父元件獲取 logo 的值,就需要使用 props: ['logo'] 在 props 中添加了元素之後

React 父子元件之間

expandedRowRender={record => <p style={{ margin: 0 }}><lable style={{ margin: 0 }}>{"合作時間: " + record.CooperationSta

vue父子元件之間以及方法呼叫

父元件向子元件傳值注:這種方式只能由父向子傳遞,子元件不能更新父元件內的data先定義一個子元件,在元件中註冊props<template> <div>

vue+antdesign模態框實現父子元件之間

vue中實現父子元件間單向資料流傳遞比較方便,子元件通過prop接收父元件傳遞過來的值,父元件通過監聽子元件emit出的函式接收子

reactjs元件之間

1、父元件向子元件傳值 // 父元件 var MyContainer = React.createClass({ render: function() { return (

Asp.Net Core MVC控制器和視圖之間

view 指定 mode 設置 http adg nbsp urn 傳值方式 一、Core MVC中控制器和視圖之間傳值方式和Asp.Net中非常類似 1.弱類型數據:ViewData,ViewBag 2.強類型數據:@model 二、代碼 實例 1.ViewData

ASP.NET頁面之間的方式之QueryString(超詳細)

res p s orm font utf-8 但是 partial .aspx object QueryString Querystring也叫查詢字符串,這種頁面間傳遞數據是利用網頁地址URL。如果要從A頁面跳轉到B頁面,則可以用Request.Redirect(”B.a

ASP.NET頁面之間的方式之Application(個人整理)

eve security 使用 例子 如何 and services https 在線人數  Application Application變量在整個應用程序生命周期中都是有效的,類似於使用全局變量一樣,所以可以在不同頁面中對它進行存取。它和Session變量的區別在於,

ASP.NET頁面之間的方式之Session(個人整理)

lec 傳遞 button doctype http 參考 方式 創建 logs   Session Session在ASP.NET中,表示客戶端(Goggle,Firefox,IE等)與服務器端的會話,用來存儲特定會話信息,準確來說,是用來存儲特定用戶信息。當客戶端向服務

ASP.NET頁面之間的方式之Cookie(個人整理)

無意中 etime linq 首選項 ner www. ati 訪問 net   Cookie Cookie 提供了一種在 Web 應用程序中存儲用戶特定信息的方法。例如,當用戶訪問您的站點時,您可以使用 Cookie 存儲用戶首選項或其他信息。當該用戶再次訪問您的網站時,

ionic父子元件

目錄結構 一、父元件==>子元件傳值        父元件 about.ts: public parentVal="我是父元件的值";    父頁面 about.html: <child [paren