Maison > interface Web > js tutoriel > Utilisation des composants vue dans des cas pratiques

Utilisation des composants vue dans des cas pratiques

php中世界最好的语言
Libérer: 2018-06-08 11:20:49
original
1698 Les gens l'ont consulté

Cette fois, je vais vous présenter l'utilisation des composants vue dans des cas pratiques. Quelles sont les précautions à prendre pour utiliser les composants vue dans des cas pratiques ? Ce qui suit est un cas pratique, jetons un coup d'oeil.

zTechnologie du projet :

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

Exemples de méthodes d'opération Vue :

1. Les données du tableau n'ont pas encore été obtenues, créez une animation préchargée

<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>
Copier après la connexion

2 . de l'état du bouton, la question de savoir si le bouton peut être cliqué

<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><!-- 可以点, 判断数组为不为空 -->
Copier après la connexion

3 Comme jquery, ajoutez dom (vue est orientée données et devrait se débarrasser des opérations compliquées du dom de 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>
Copier après la connexion

js :

Équivalent à la chaîne dom dans jq

 timeInputString: '<el-input v-model="ruleForm.name"></el-input><span class="el-icon-minus"></span>'
Copier après la connexion

Le js natif pousse et insère les données dans le tableau (saisit la longueur du tableau), car Vue est pilotée par les données, et on juge par les données si le dom doit être rendu

 addTime () {
 this.timeArr.push('str')
 },
 minusTime () {
 this.timeArr.shift('str')
 }
Copier après la connexion

4 Lorsque la scène boucle une certaine liste, une certaine liste a une classe, et. une méthode peut y être liée. Prise en charge des paramètres de transmission

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>
Copier après la connexion

js

getSectionId (sectionId) {
 return {
  active: this.$route.params.sectionId === sectionId,
 }
}
Copier après la connexion
Copier après la connexion

5. Communication entre le composant enfant->parent, vue. $emit vue.on

Sous-composant :

getSectionId (sectionId) {
 return {
  active: this.$route.params.sectionId === sectionId,
 }
}
Copier après la connexion
Copier après la connexion

Composant parent :

dom

<v-child :courseId="courseId" v-on:receiveTitle="receiveTitle"></v-child>
Copier après la connexion

js

methods: {
 receiveTitle (name) {
  this.titleName = name; // titleName 就是 **@课程
 }
}
Copier après la connexion

Routine récapitulative : utilisation du sous-composant La fonction (événement) transmet l'attribut recevoirTitre au composant parent, puis le composant parent surveille cet attribut et lie la méthode recevoirTitre à cet attribut. La méthode transmet les paramètres, et ce paramètre est la valeur à prendre. réussi

6. Parent-> Enfant

Composant parent :

dom :

<course-tab :courseList = courseList ></course-tab>
Copier après la connexion

js :

courseList().then(res => {
 this.courseList = res.data.courses;
 }).catch( err => {
 console.log(err)
});
Copier après la connexion

Composant enfant :

 props: {
  courseList: {
   type: Array
  }
 }
Copier après la connexion

Routine récapitulative : le composant parent transmet la variable au composant enfant. Cette variable doit être liée à l'étiquette du composant enfant, puis le composant enfant peut accepter cette variable dans les accessoires.

7. Erreur de traitement du routage, redirection, dans Ajouter une information de routage dans le routeur

{
  path: '*',
  redirect: '/'
}
Copier après la connexion

Voici la redirection vers la page d'accueil, vous pouvez également créer une page 404 séparée et rediriger vers celle-ci page

Dans la navigation programmatique,

router.push({ path: 'login-regist' })  // 如果这样写的话,会寻找路由最近的 / 然后在后面直接拼接login-regist;
为了防止在多级嵌套路由里面出现bug ,应该写全路由的全部信息,包括 /
router.push({ path: '/login-regist' })
Copier après la connexion

8. Épissage des CSS dans dom

<p class="img" :style="{background: &#39;url(&#39; + item.logoFileURL + &#39;)&#39;}"></p>
Copier après la connexion

9. Écoute des événements de défilement

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);
 }
Copier après la connexion
10. Surveillance des changements dans la valeur d'entrée de la zone de saisie

@input="search",
Copier après la connexion
La méthode de surveillance

de l'élément-UI, <el-input

<el-input v-model="input" @keyup.enter.native="add" placeholder="请输入内容" > Je crois que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de PHP ! 

Lecture recommandée :

Explication détaillée des cas de rendu dans React

Explication détaillée des cas d'utilisation de la fonction Vue Mixin

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
vue
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal