ホームページ  >  記事  >  ウェブフロントエンド  >  実際のケースでの vue コンポーネントの使用

実際のケースでの vue コンポーネントの使用

php中世界最好的语言
php中世界最好的语言オリジナル
2018-06-08 11:20:491628ブラウズ

今回は実際のケースでの vue コンポーネントの使用方法についてお届けします。実際のケースで vue コンポーネントを使用する際の注意点は何ですか? 以下は実際のケースです。

zプロジェクト技術:

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の複雑な操作を取り除く必要があります)

<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 文字列と同等

 timeInputString: '<el-input v-model="ruleForm.name"></el-input><span class="el-icon-minus"></span>'
vue はデータ駆動型であるため、ネイティブ js はデータを配列にプッシュおよびポップします (配列の長さを取得します)。 rendered

 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 .child->parentコンポーネント通信、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 就是 **@课程
 }
}
概要ルーチン: 子コンポーネントは関数(イベント)を親に使用します。コンポーネントは、receiveTitle属性を渡します。次に、親コンポーネントがこの属性を監視し、メソッド acceptTitle をこの属性にバインドし、このパラメーターが渡される値です。

親コンポーネント:

6。 :

<course-tab :courseList = courseList ></course-tab>
js:

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

 props: {
  courseList: {
   type: Array
  }
 }
概要ルーチン: 親コンポーネントは、子コンポーネントのラベルにこの変数をバインドする必要があります。そうすれば、子コンポーネントはこの変数を受け入れることができます。 in 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 

Reactのレンダリングケースの詳細な説明

Vue Mixin関数のユースケースの詳細な説明

以上が実際のケースでの vue コンポーネントの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:ゼロからの Vuex次の記事:ゼロからの Vuex