この記事では、Vue にコンテナ コンポーネントと表示コンポーネントを導入する React の詳細なチュートリアルを主に紹介します。この記事では、コンテナ コンポーネントを使用する理由を詳しく紹介しています。必要な方は参考にしてください。コンテナ コンポーネント (Smart/Container Components) またはプレゼンテーション コンポーネント (Dumb/Presentational Components) について聞いたことがあると思いますが、この部門から Vue コードを作成するために学ぶことはできますか?この記事では、このパターンを採用する必要がある理由と、両方のコンポーネントを Vue で作成する方法を説明します。
なぜコンテナ コンポーネントを使用するのでしょうか? コンテナ コンポーネントについて知る前に、コメントを表示するコンポーネントを作成したい場合、コードは通常次のように記述されます:
components/CommentList.vue
<template> <ul> <li v-for="comment in comments" :key="comment.id" > {{comment.body}}—{{comment.author}} </li> </ul> </template> <script> export default { name: 'CommentList', computed: { comments () { return this.$store.state.comments } }, mounted () { this.$store.dispatch('fetchComments') } } </script>
store/index.js
import Vue from 'vue'; import Vuex from 'vuex';
Vue.use(Vuex);
const store = new Vuex.Store({ state: { comments: [], }, mutations: { setComments(state, comments) { state.comments = comments; }, }, actions: { fetchComments({commit}) { setTimeout(() => { commit('setComments', [ { body: '霸气侧漏', author: '雷叔', id: 1123, }, { body: '机智如我', author: '蕾妹', id: 1124, }, ]); }); }, }, });
exportdefaultstore;
このように書くと自然な気がしますが何か問題ありますか?それとも最適化できる領域についてはどうでしょうか?
CommentList.vue とプロジェクトの Vuex ストアとの間には明らかな問題があり、現在のプロジェクトなしでそれを再利用するのは困難です。
この問題を解決できる、コンポーネントを整理するより良い方法はありますか? React コミュニティにおけるコンテナ コンポーネントの概念を理解する時期が来ました。
コンテナ コンポーネントとは何ですか? React.js Conf 2015 では、コンテナ コンポーネントを紹介する高パフォーマンス コンポーネントでアプリを高速化するというトピックがありました。
コンテナ コンポーネントは、ストアと通信し、props を介して通常の表示コンポーネントにデータを渡すことを特に担当します。表示コンポーネントがデータの更新を開始したい場合は、コンテナ コンポーネントによって渡されるコールバック関数を通じてストアに通知します。 props を介してコンテナコンポーネント。
表示コンポーネントはストアに直接結合されなくなり、必要なデータとメソッドが props インターフェースを通じて定義されるため、表示コンポーネントの再利用性が高くなります。
コンテナコンポーネントとディスプレイコンポーネントの違い
コンテナコンポーネント |
||
---|---|---|
表示方法を説明(スケルトン、スタイル) | 実行方法を説明(データ取得、ステータス更新) | |
いいえ | それは | |
props | ストアの状態を聞く | |
propsからコールバック関数を呼び出す | ストアにアクションをディスパッチする |
以上がVue にコンテナ コンポーネントと表示コンポーネントを導入する React に関する詳細なチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

在react中,canvas用于绘制各种图表、动画等;可以利用“react-konva”插件使用canvas,该插件是一个canvas第三方库,用于使用React操作canvas绘制复杂的画布图形,并提供了元素的事件机制和拖放操作的支持。

React不是双向数据流,而是单向数据流。单向数据流是指数据在某个节点被改动后,只会影响一个方向上的其他节点;React中的表现就是数据主要通过props从父节点传递到子节点,若父级的某个props改变了,React会重渲染所有子节点。

在react中,antd是基于Ant Design的React UI组件库,主要用于研发企业级中后台产品;dva是一个基于redux和“redux-saga”的数据流方案,内置了“react-router”和fetch,可理解为应用框架。

因为在react中需要利用到webpack,而webpack依赖nodejs;webpack是一个模块打包机,在执行打包压缩的时候是依赖nodejs的,没有nodejs就不能使用webpack,所以react需要使用nodejs。

react是组件化开发;组件化是React的核心思想,可以开发出一个个独立可复用的小组件来构造应用,任何的应用都会被抽象成一颗组件树,组件化开发也就是将一个页面拆分成一个个小的功能模块,每个功能完成自己这部分独立功能。

react和reactdom的区别是:ReactDom只做和浏览器或DOM相关的操作,例如“ReactDOM.findDOMNode()”操作;而react负责除浏览器和DOM以外的相关操作,ReactDom是React的一部分。

在react中,forceupdate()用于强制使组件跳过shouldComponentUpdate(),直接调用render(),可以触发组件的正常生命周期方法,语法为“component.forceUpdate(callback)”。

react中没有双向绑定;react的设计思想就是单向数据流,没有双向绑定的概念;react是view层,单项数据流只能由父组件通过props将数据传递给子组件,满足了view层渲染的要求并且更易测试与控制,所以在react中没有双向绑定。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック



