Vue の共通コンポーネントの使用方法の詳細な説明

php中世界最好的语言
リリース: 2018-04-28 13:39:22
オリジナル
2686 人が閲覧しました

今回は、Vue での共通コンポーネントの使用について詳しく説明します。Vue で共通コンポーネントを使用する際の 注意事項 について、実際のケースを見てみましょう。

プロジェクト技術:

webpack + vue + element + axois (vue-resource) + less-loader+ ...

vue操作メソッドの場合:

1. 配列データがまだ取得されていません。プリロードされたアニメーションを作成します

<el-carousel :interval="3000" type="card" height="200px" class="common-mt-md">
   <el-carousel-item v-for="item in movieArr" :key="item.id" class="text-center">
    <img v-bind:src="item.images.small" alt="电影封面" class="ticket-index-movie-img">
   </el-carousel-item>// 实际显示的内容-跑马灯
   <p v-if="!movieArr.length" class="ticket-index-movie-loading">
    <span class="el-icon-loading "></span>
   </p>// 当 movirArr的数组为空的时候,做出的预加载 loading 
</el-carousel>
ログイン後にコピー
2. ボタンのステータスとボタンがクリックできるかどうかを決定します

<p v-if="!multipleSelection.length">
  <el-button type="success" round disabled>导出</el-button>
</p><!-- 不能点, 判断数组为空 -->
<p v-else>
  <el-button type="success" round >导出</el-button>
</p><!-- 可以点, 判断数组为不为空 -->
ログイン後にコピー
3. jquery と同様に、dom を追加します (vue はデータ指向なので、jquery の dom の複雑な操作を取り除く必要があります)。

<el-form-item label="时间" prop="name">
  <el-input v-model="ruleForm.name"></el-input>//绑定模型,检测输入的格式
  <span class="el-icon-plus ticket-manage-timeinput" @click="addTime(this)"></span>//绑定方法,增加dom的操作
 </el-form-item> 
<el-form-item label="时间" prop="name" v-for="item in timeArr" :key=&#39;item.id&#39;>  //timeArr数组与数据就渲染下面的dom,没有就不显示
  <el-input v-model="ruleForm.name"></el-input> 
  <span class="el-icon-minus ticket-manage-timeinput" @click="minusTime(this)"></span> 
</el-form-item>
ログイン後にコピー
js:

jq の dom と同等

String

 timeInputString: '<el-input v-model="ruleForm.name"></el-input><span class="el-icon-minus"></span>'
ログイン後にコピー
vue は data によって駆動され、 data によって判断されるため、ネイティブ js はデータを配列にプッシュおよびポップします (配列の長さを取得します)。 render dom

 addTime () {
 this.timeArr.push('str')
 },
 minusTime () {
 this.timeArr.shift('str')
 }
ログイン後にコピー
4. シーンが特定のリストをループしているときに、特定のリストにパラメータの受け渡しをサポートできるメソッドをバインドする

dom

<li v-for="section in item.sections" :key=&#39;section.id&#39; @click="hideParMask" :class="getSectionId(section.id)">
 <router-link :to="{ name: &#39;learning&#39;, params: { sectionId: section.id}, query: { courseId: courseId}}" >
   <span>{{item.orderInCourse}}.{{section.sectionNumber}}</span>
   <span>{{section.name}}</span>
 </router-link>
</li>
ログイン後にコピー
js

getSectionId (sectionId) {
 return {
  active: this.$route.params.sectionId === sectionId,
 }
}
ログイン後にコピー
ログイン後にコピー
5.親コンポーネントの通信、vue.$emit vue.on

子コンポーネント:

getSectionId (sectionId) {
 return {
  active: this.$route.params.sectionId === sectionId,
 }
}
ログイン後にコピー
ログイン後にコピー
親コンポーネント:

dom

<v-child :courseId="courseId" v-on:receiveTitle="receiveTitle"></v-child>
ログイン後にコピー
js

methods: {
 receiveTitle (name) {
  this.titleName = name; // titleName 就是 **@课程
 }
}
ログイン後にコピー
サマリールーチン:子コンポーネント

uses function(event)を親にコンポーネントが渡す親コンポーネントはこの属性を監視し、この属性にメソッドをバインドし、このパラメータは渡される値です。

6. :

dom:

<course-tab :courseList = courseList ></course-tab>
ログイン後にコピー
js:

courseList().then(res => {
 this.courseList = res.data.courses;
 }).catch( err => {
 console.log(err)
});
ログイン後にコピー
子コンポーネント:

 props: {
  courseList: {
   type: Array
  }
 }
ログイン後にコピー
概要ルーチン: 親コンポーネントは、子コンポーネントのラベルにこの変数をバインドする必要があります。次に、子コンポーネントをバインドする必要があります。 props でこの変数を受け入れることができます

7 . ルーティング処理のエラー、リダイレクト、ルーターにルーティング情報を追加します

{
  path: '*',
  redirect: '/'
}
ログイン後にコピー
ここはホームページへのリダイレクトですが、別の

404 ページ

を作成してこのページにリダイレクトすることもできます

プログラムによるナビゲーションでは、

router.push({ path: 'login-regist' })  // 如果这样写的话,会寻找路由最近的 / 然后在后面直接拼接login-regist;
为了防止在多级嵌套路由里面出现bug ,应该写全路由的全部信息,包括 /
router.push({ path: '/login-regist' })
ログイン後にコピー
8. dom での CSS の結合

<p class="img" :style="{background: &#39;url(&#39; + item.logoFileURL + &#39;)&#39;}"></p>
ログイン後にコピー
9. スクロールイベントの監視

data () {
  return {
   scrolled: false,
    show: true
  }
},
methods: {
  handleScroll () {
   this.scrolled = window.scrollY > 0;
   if (this.scrolled) {
    this.show = false;
   }
  }
 },
 mounted () {
  window.addEventListener('scroll', this.handleScroll);
 }
ログイン後にコピー
要素 UI の

メソッドの監視

@input="search",
ログイン後にコピー
この記事の事例を読んだ後、あなたはそれをマスターしたと思います。さらにエキサイティングな方法については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

<el-input 

レンダリング実行を操作するメソッドは何ですか?

jsはテキストファイルをコピーする機能を実現します(詳細なステップバイステップの説明)

以上がVue の共通コンポーネントの使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート