Heim > Web-Frontend > js-Tutorial > Detaillierte Einführung in die Vue-Struktur (mit Beispielen)

Detaillierte Einführung in die Vue-Struktur (mit Beispielen)

不言
Freigeben: 2019-02-20 14:11:07
nach vorne
3491 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine detaillierte Einführung in die Struktur von Vue (mit Beispielen). Freunde in Not können sich darauf beziehen.

1. Vue-Nutzungsszenarien:

* 在html中通过script引入
* 在webpack中,由于配置有处理各种文件的loader,所以可以用import引入
Nach dem Login kopieren

2.Vue-Befehle

v-cloak
v-bind  ==> :
v-on ==> @
v-text
v-html
v-modal
:class : 简单值,数组,对象,数组中对象
:style : 数组, 对象
v-for
v-if
v-show
Nach dem Login kopieren
  • Benutzerdefinierte globale Direktive

Vue.derictive(自定义指令名字, 指令生效周期配置对象{
    bind : (被绑定的那个元素的js原生对象el) => {},   ==> 一旦绑上马上调用
    inserted : (el同上) => {},  ==> 元素插入到DOM之后再调用
    updated : (el同上, binding) => {}
}
Nach dem Login kopieren
  • Benutzerdefinierte lokale Direktive

var vm2 = new Vue({
  el: '#app2',
  data: {},
  methods: {},
  directives: { 
    'fontweight': {
      bind: function (el, binding) {
        el.style.fontWeight = binding.value
      }
    },
  }
})
Nach dem Login kopieren

3. Vue-Ereignismodifikator

.stop
.prevent
.capture
.self
.once
.self和.stop在阻止冒泡行为上的区别
Nach dem Login kopieren

4.Vue-Filter
Die Parameterübergaberegeln des globalen Filters sind die gleichen;
Wenn globaler Filter und lokaler Filter Die Namen der Filter Bei der Verwendung von Filtern innerhalb von Komponenten wird der Verwendung Ihres eigenen internen Filters

  • globaler Filter

Vue.filter('自定义过滤器名字' , function(第一参数来自于管道符 | 前的数据 , 后面的参数是该过滤器被调用时候传递过来的参数){}
Nach dem Login kopieren
  • Lokaler Filter

wird im Filterattribut in der Vue-Instanz definiert

var vm2 = new Vue({
  el: '#app2',
  data: {},
  methods: {},
  filters: { 
    dateFormat: function (dateStr, pattern = '') {}
    }
  },
})
Nach dem Login kopieren

5.Vue-TastenmodifikatorenTastenmodifikatoren, werden wie Ereignismodifikatoren wie .self nach V-on-Ereignissen verwendet.

.enter
.tab
.up
.down
.left
.right
.delete
.esc
.space
Nach dem Login kopieren
  • Benutzerdefinierter globaler Schlüsselmodifikator

Vue.config.keyCodes.自定义按键修饰符名字 = 按键的码值
Nach dem Login kopieren

6. Lebenszyklus der Vue-Komponente

beforeCreated(){} ==> data和methods中数据还没初始化好
created(){} ==> data和methods中的数据已经初始化好
beforeMount(){} ==> 模板已经在内存中编译好了,但是没有被渲染到页面上
mounted(){} ==> 内存中的模板已经渲染到了页面行,用户可以看到页面了
beforeUpdate (){} ==> data中的数据已经更新,但是界面上的数据没有更新
updated (){} ==> 界面上数据更新结束
beforeDestory (){} ==> 此时data和methods中数据还可以使用
destoryed (){} ==> data和methods中数据都不能使用了,Vnode被完全销毁
Nach dem Login kopieren

7.Vue-resource ähnelt axios, hängt jedoch von Vue.js ab. Nach der Einführung wird das $http-Attribut automatisch zur Vue-Instanz hinzugefügt

$http.get()
$http.post()
$http.jsonp()

均返回一个promise
this.$http.get('http://vue.studyit.io/api/getlunbo').then(function (result) {
  console.log(result.body)
})
Nach dem Login kopieren

8 . Vue-Animation

  • Klassenname

v-enter
v-enter-active
v-enter-to
v-leave
v-leave-active
v-leave-to
Nach dem Login kopieren
  • Klassennamen eines Drittanbieters verwenden

<transition
name=&#39;my&#39;
enter-active-class="bounceIn"
leave-active-class="bounceOut"
:duration="{ enter: 200, leave: 400 }">
  <h3 v-if="flag" class="animated">这是一个H3</h3>
</transition>
Nach dem Login kopieren
  • Animations-Hook-Funktion

<transition
  @before-enter="beforeEnter"
  @enter="enter"
  @after-enter="afterEnter">
  <p class="ball" v-show="flag"></p>
</transition>

beforeEnter (要执行动画的那个对象的原生DOM对象el) {} ==> 动画入场之前,设置动画的起始样式
enter (el , done) {done()} ==> 动画开始后样式,设置动画结束样式
afterEnter () {} ==> 动画完全结束回调
Nach dem Login kopieren

9.Vue erstellt Komponenten

  • (1) Erstellung von Komponentenvorlagenobjekten

方式1:
Vue.extend({
    template : ''
})

方式2:
直接一个 Object
Nach dem Login kopieren
  • (2) Registrieren der globalen Komponente

Vue.component(自定义组件名字, 组件模板)
Nach dem Login kopieren
  • (3) Der Unterschied zwischen Komponentendaten und Vue-Instanzdaten

Komponentendaten müssen Objekt zurückgeben

10. Komponentenumschaltung und -animation

  • Komponentenwechsel

<component :is="comName"></component>
comName是变量
Nach dem Login kopieren
  • Animation beim Komponentenwechsel

<!-- 通过 mode 属性,设置组件切换时候的 模式 -->
<transition mode="out-in">
  <component :is="comName"></component>
</transition>
Nach dem Login kopieren

11. Übergabe von Werten zwischen übergeordneten und untergeordneten Komponenten

  • Übergabe von Werten von der übergeordneten Komponente an untergeordnete Komponenten

传单纯值:
<com1 v-bind:parentmsg="msg"></com1>

传函数
<com2 @func="show"></com2>
this.$emit('func', this.sonmsg)
Nach dem Login kopieren
  • Die untergeordnete Komponente übergibt den Wert an die übergeordnete Komponente

Übergeben Sie die Parameter der Funktion über die übergeordnete Komponente

  • $refs

12.Vue-Routing

  • Wie bei Vue-Ressource müssen Sie eine einführen vue-router.js-Datei

let routeObj = new VueRouter({  
    routes : [
        {path : '' , redrect : '' , component : null}
    ]
})

var vm = new Vue({
  el: '#app',
  router: routerObj
});
Nach dem Login kopieren
  • Routenparameter

<router-link to="/login?id=10&name=zs">login</router-link>
routes: [
  { path: '/login/:id/:name', component: login , children : [{path , redrect , component , children}] },
]
$route.params.id
Nach dem Login kopieren
  • Eine Route entspricht mehrere Komponenten

<router-view></router-view>
<p class="container">
  <router-view name="left"></router-view>
  <router-view name="main"></router-view>
</p>

var router = new VueRouter({
  routes: [
    {
      path: '/', components: {
        'default': header,
        'left': leftBox,
        'main': mainBox
      }
    }
  ]
})
Nach dem Login kopieren

13.watch überwacht Datenänderungen oder leitet Änderungen in Daten weiter

var vm = new Vue({
  el: '#app',
  data: {firstname: '',},
  watch: { // 使用这个 属性,可以监视 data 中指定数据的变化,然后触发这个 watch 中对应的 function 处理函数
    'firstname': function (newVal, oldVal) {
      this.fullname = newVal + '-' + this.lastname
    },
    '$route.path': function (newVal, oldVal) {   ==> 只需要这是一个变量
      if (newVal === '/login') {
        console.log('欢迎进入登录页面')
      } else if (newVal === '/register') {
        console.log('欢迎进入注册页面')
      }
    }
  }
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Vue-Struktur (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage