vue2.0指不了南

零.浑沌

vue是什么

vue是一套构建用户界面的渐进式框架。

他的特征:

  1. 简约:页面由HTML模板+Json数据+Vue实例构成

  2. 数据驱动:自动盘算属性和追踪依靠的模板表达式

  3. 组件化:用可复用、解耦的组件来组织页面

  4. 轻量:代码量小,不依靠其他库

  5. 疾速:准确有用批量DOM更新

  6. 模板友爱:多种体式格局装置,很轻易融入

所须要贮备的手艺

  1. 扎势的html,css,JavaScript基础学问 火狐中文社区 https://developer.mozilla.org…

  2. es6相干学问 ECMAScript 6 入门 http://es6.ruanyifeng.com/#RE…

  3. nodejs相干学问 npm 基础用法和实用技巧 https://github.com/theicebear…

  4. webpack相干学问 webpack中文社区 https://doc.webpack-china.org/

  5. 能够简朴的运用敕令终端

运用vue-cli 建立项目

1. node 环境装置(更新到最新)

2. vue-cli 脚手架装置

2.1 npm install vue-cli -g

3. 建立项目

3.1 vue init webpack 项目名称

4. 进入该目次

4.1 cd 项目名称

5. 装置依靠包

5.1 npm install(或许简写 i )

6. 启动项目

npm run dev

模板语法

数据绑定最常见的情势
  1. 运用 “Mustache” 语法(双大括号)的文本插值: {{msg}}

  2. 运用 v-bind 在 HTML 属性中运用: <div v-bind.id="msg"><div>

一.指令

1. 内置指令

1.1 v-text:更新元素的 textContent。

<span v-text="msg"></span> 等同于 <span>{{msg}}</span>

1.2 v-html:更新元素的 innerHTML。注重:内容按一般 HTML 插进去 - 不会作为 Vue 模板举行编译

<div v-html="msg"></div>

1.3 v-show:切换元素的 display CSS 属性。

1.4 v-if:在切换时元素及它的数据绑定 / 组件被烧毁并重修。

1.5 v-else:合营v-if运用。

1.6 v-else-if:合营v-if运用

    <div v-if></div>
    <div v-else-if></div>
    <div v-else-if></div>
    <div v-else></div>`

1.7 v-for:基于源数据屡次衬着元素或模板块。

<div v-for="(val, key, index) in data"></div>

    数组更新检测的要领有
  1. push()

  2. pop()

  3. shift()

  4. unshift()

  5. splice()

  6. sort()

  7. reverse()

       重塑数组要领
  8. filter()

  9. concat()

  10. slice()

         注重事项 

    因为 JavaScript 的限定, Vue 不能检测以下更改的数组:

  11. 当你应用索引直接设置一个项时,比方: vm.items[indexOfItem] = newValue 解决办法 Vue.set(example1.items, indexOfItem, newValue)

  12. 当你修正数组的长度时,比方: vm.items.length = newLength 解决办法example1.items.splice(newLength)

1.8 v-on:绑定事宜监听器。能够简写为:@

监听当前实例上的自定义事宜。事宜能够由vm.$emit触发。回调函数会吸收一切传入事宜触发函数的分外参数。

vm.$on('test', function(msg) {
    console.log(msg)
})
vm.$emit('test', 'hi')

修饰符:

  1. .stop – 挪用 event.stopPropagation()

  2. .prevent– 挪用 event.preventDefault()。

  3. .capture – 增加事宜侦听器时运用 capture 形式。

  4. .self – 只当事宜是从侦听器绑定的元素本身触发时才触发还调。

  5. .{keyCode | keyAlias} – 只当事宜是从侦听器绑定的元素本身触发时才触发还调。

  6. .native – 监听组件根元素的原生事宜。

1.9 v-bind:动态地绑定一个或多个特征,或一个组件 prop 到表达式。能够简写为::

<!-- 绑定一个属性 -->
<img v-bind:src="src">
<!-- 缩写 -->
<img :src="src">

1.10 v-model:在表单控件或许组件上建立双向绑定。

限定运用在

  1. <input>

  2. <select>

  3. <textarea>

  4. components

可运用的修饰符

  1. .lazy

  2. .number

  3. .trim

1.11 v-pre:跳过这个元素和它的子元素的编译历程。

1.12 v-cloak:保持在元素上直到关联实例完毕编译。

合营 CSS 划定规矩运用 如 [v-cloak] { display: none }

1.13 v-once:只衬着元素和组件一次

2. 自定义指令

2.1 全局自定义指令

Vue.directive('focus', {
    // 当绑定元素插进去到 DOM 中。
    inserted: function(el) {
        // 聚焦元素
        el.focus()
    }
})    

2.2 部分自定义指令

二.组件

组件可扩大 HTML 元素,封装可重用的代码

1. 内置组件

1.1 component :衬着一个“元组件”为动态组件

1.2 transition :单个元素/组件的过渡效果

1.3 transition-group :多个元素/组件的过渡效果。

1.4 keep-alive :包裹动态组件时,会缓存不运动的组件实例,而不是烧毁它们。

1.5 slot:元素作为组件模板当中的内容分发插槽。 <slot> 元素本身将被替代。

2.自定组件

注重: 要确保在初始化根实例 之前 注册了组件

2.1 全局组件

Vue.component('my-component', {
  
})

2.2 部分组件

var Child = {
  template: '<div>A custom component!</div>'
}
new Vue({
  // ...
  components: {
    // <my-component> 将只在父模板可用
    'my-component': Child
  }
})

2.3 DOM 模版剖析申明

这些元素 <ul> , <ol>, <table> , <select> 限定了能被它包裹的元素, <option> 只能出现在别的元素内部。

2.4 data 必需是函数

2.5 组件之间的通讯- 父传子

组件实例的作用域是伶仃的。

子组件要显式地用 props 选项声明它期待取得的数据:

Vue.component('child', {
  // 声明 props
  props: ['message'],
  // 就像 data 一样,prop 能够用在模板内
  // 一样也能够在 vm 实例中像 “this.message” 如许运用
  template: '<span>{{ message }}</span>'
})

向父组件传入一个一般字符串:

<child message="hello!"></child>

当运用的不是字符串模版camelCased (驼峰式) 定名的 prop 须要转换为相对应kebab-case (短横线隔开式) 定名:

Vue.component('child', {
  // camelCase in JavaScript
  props: ['myMessage'],
  template: '<span>{{ myMessage }}</span>'
})
<!-- kebab-case in HTML -->
<child my-message="hello!"></child>

假如你运用字符串模版,则没有这些限定。

2.6 组件之间的通讯- 子传父

运用 $on(eventName)监听事宜

运用 $emit(eventName) 触发事宜

<div id="counter-event-example">
  <p>{{ total }}</p>
  <button-counter v-on:increment="incrementTotal"></button-counter>
  <button-counter v-on:increment="incrementTotal"></button-counter>
</div>
Vue.component('button-counter', {
  template: '<button v-on:click="increment">{{ counter }}</button>',
  data: function () {
    return {
      counter: 0
    }
  },
  methods: {
    increment: function () {
      this.counter += 1
      this.$emit('increment')
    }
  },
})
new Vue({
  el: '#counter-event-example',
  data: {
    total: 0
  },
  methods: {
    incrementTotal: function () {
      this.total += 1
    }
  }
})

2.7 组件之间的通讯- 非父子

  1. 简朴的场景下,能够运用一个空的 Vue 实例作为中心事宜总线:

  2. 庞杂的情况下,我们应当斟酌运用特地的 状况治理形式(vuex).

2.8 Slot 分发内容

无名 Slot

子组件 my-component 模板:

<div>
  <h2>我是子组件的题目</h2>
  <slot></slot>
</div>

父组件模版:

<div>
  <h1>我是父组件的题目</h1>
  <my-component></my-component>
</div>

衬着效果:

<div>
  <h1>我是父组件的题目</h1>
  <div>
    <h2>我是子组件的题目</h2>
  </div>
</div>

著名

三.路由

装置运用

npm install vue-router

### main.js ###

import router from './router'

new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: { App }
})

### router.js ###

import VueRouter from 'vue-router'

Vue.use(VueRouter)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'foo',
      component: foo
    }
})

1. 动态路由婚配

2. 嵌套路由

3. 重定向 和 别号

4. 猎取数据

5. 懒加载

四.状况治理

1. 状况治理形式是什么

2. 中心观点诠释

2.1 State

2.2 Getters

2.3 Mutations

2.2 Actions

2.2 Moudules

3. 引荐的项目构造

五.动画

    原文作者:资深bug创意
    原文地址: https://segmentfault.com/a/1190000008900710
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞