Vue.js フロントエンドとバックエンドの共通コンポーネント開発経験 - 新人記事_html/css_WEB-ITnose
プロジェクトのステータス
私はサーバーフレームワークとしてexpressを使用しています。バックグラウンドAPIインターフェイスを呼び出してデータを取得し、そのデータをHTMLにレンダリングするだけです。フロントエンド データとバックエンド データをレンダリングするには、テンプレートのセットを使用するのが最善です。つまり、テンプレートといくつかの単純なコンポーネントは同形であってもかまいません。
サーバー側で vue コンポーネントをレンダリングするには、vue-server プラグインを使用します。使い方はvueと似ています。これの目的は、サーバー側で最初の画面をレンダリングし、ページの表示速度を向上させることです。
開発コンポーネント
サーバーで使用する必要があるため、ノードで読み取れる単一の .vue ファイルを開発する方法が見つからず、一時的に諦めました。また、コンポーネント名をハードコーディングする次の方法は適切ではありません
Vue.component('my-component', { /* ... */ }) //这样写需要引入Vue,但是前后端的Vue不是一个东西
そこで、次のように単純なコンポーネント オブジェクトのみを出力することにしました。 modal.js
なぜテンプレートを直接記述する必要があるのでしょうか?
回答: インポート方法が 2 つあるため、フロントエンドは問題なくプリコンパイルできますが、バックエンド呼び出し import 'XXX.html' は実行されない可能性があります。
コンポーネントを出力する
#index.js 输出组件的文件import modal from './component/modal/modal'exports.modal = modal
コンポーネントを使用したフロントエンド
import Vue from 'vue'import { picker, modal, toast, alert, preloader, indicator, actions, pullToRefresh, infiniteScroll} from '../src/index' //使用前端的Vue定义组件和指令的名称Vue.component('picker',picker);Vue.component('modal',modal);Vue.component('toast',toast);Vue.component('alert',alert);Vue.component('preloader',preloader);Vue.component('indicator',indicator);Vue.component('actions',actions)Vue.directive('pull-to-refresh',pullToRefresh)Vue.directive('infinite-scroll',infiniteScroll)
こうすることで、フロントエンドはこのコンポーネントを通常どおりに使用できるようになります
コンポーネントを使用したバックエンド
import { picker, modal, toast, alert, preloader, indicator, actions, pullToRefresh, infiniteScroll} from '../src/index' let vueServer = require('vue-server') //服务端Vuelet Vue = new vueServer.renderer();//页面模板let tpl = fs.readFileSync(config.PATH_WEBAPP + '/states/index/template.html', 'utf-8');//vue实例vm = new Vue({ replace: false, template: tpl, components : { picker : picker, modal : modal, toast : toast, alert : alert }, data: { }});//渲染好html的事件vm.$on('vueServer.htmlReady', function (html) { res.render('layout', {server_html:html}); //这个html就是vue服务端渲染好的,然后可以通过ejs或者其他模板引擎输出到layout中。});
ok この一般的なコンポーネントの記述方法は、比較的単純なプロジェクトにのみ適しています。リストやレイアウトなどのページ要素を生成するために一度バインドされるコンポーネントを作成する方が適しています。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









この記事では、HTML< Progress>について説明します。要素、その目的、スタイリング、および< meter>との違い要素。主な焦点は、< Progress>を使用することです。タスクの完了と< Meter> statiの場合

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

この記事では、HTML< Datalist>について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

この記事では、html< meter>について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化< Meter> < Progress>およびex

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

この記事では、< iframe>外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。
