vue技术

目录

课程简介

vue简介

什么是vue?

谁开发的?

vue的特点

vue实现

vue.js教程

API

全局配置

silent

optionMergeStrategies

devtools

errorHandler

warnHandler

ignoredElements

keyCodes

performance

选项/数据

data

props

 选项/生命周期钩子

beforeCreate

选项/资源

directives

filters

选项/组合

parent

mixins

选项/其他

name

delimiters

实例property

vm.$data

搭建Vue开发环境

 Hello小案例

完整代码

 运行结果


课程简介

1.vue基础

2.vue-cli

3.vue-router

4.vuex

5.element-ui

6.vue3

vue简介

什么是vue?

一套用于构建用户界面的渐进式()javascript框架

vue可以自底向上逐层的应用

简单应用:只需一个轻量小巧的核心库

谁开发的?

尤雨溪

后起之秀,生态完善,已然成为国内前端工程师必备技能

vue的特点

1.采用组件化模式,提高代码复用率,且代码更好维护。

2.声明式编码,让编码人员无需直接操作DOM,提高开发效率。

vue实现

数据——>虚拟DOM(Virtual-DOM)——>页面真实DOM(Real-DOM)

vue.js教程

Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。

Vue 只关注视图层, 采用自底向上增量开发的设计。

Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

API

全局配置

Vue.config 是一个对象,包含 Vue 的全局配置。可以在启动应用之前修改下列 property:

silent

  • 类型boolean

  • 默认值false

  • 用法

    Vue.config.silent = true

    取消 Vue 所有的日志与警告。

optionMergeStrategies

  • 类型{ [key: string]: Function }

  • 默认值{}

  • 用法

    Vue.config.optionMergeStrategies._my_option = function (parent, child, vm) {
      return child + 1
    }
    
    const Profile = Vue.extend({
      _my_option: 1
    })
    
    // Profile.options._my_option = 2

    自定义合并策略的选项。

    合并策略选项分别接收在父实例和子实例上定义的该选项的值作为第一个和第二个参数,Vue 实例上下文被作为第三个参数传入。

devtools

  • 类型boolean

  • 默认值true (生产版为 false)

  • 用法

    // 务必在加载 Vue 之后,立即同步设置以下内容
    Vue.config.devtools = true

    配置是否允许 vue-devtools 检查代码。开发版本默认为 true,生产版本默认为 false。生产版本设为 true 可以启用检查。

errorHandler

  • 类型Function

  • 默认值undefined

  • 用法

    Vue.config.errorHandler = function (err, vm, info) {
      // handle error
      // `info` 是 Vue 特定的错误信息,比如错误所在的生命周期钩子
      // 只在 2.2.0+ 可用
    }

    指定组件的渲染和观察期间未捕获错误的处理函数。这个处理函数被调用时,可获取错误信息和 Vue 实例。

    从 2.2.0 起,这个钩子也会捕获组件生命周期钩子里的错误。同样的,当这个钩子是 undefined 时,被捕获的错误会通过 console.error 输出而避免应用崩溃。

    从 2.4.0 起,这个钩子也会捕获 Vue 自定义事件处理函数内部的错误了。

    从 2.6.0 起,这个钩子也会捕获 v-on DOM 监听器内部抛出的错误。另外,如果任何被覆盖的钩子或处理函数返回一个 Promise 链 (例如 async 函数),则来自其 Promise 链的错误也会被处理。

    错误追踪服务 Sentry 和 Bugsnag 都通过此选项提供了官方支持

warnHandler

  • 类型Function

  • 默认值undefined

  • 用法

    Vue.config.warnHandler = function (msg, vm, trace) {
      // `trace` 是组件的继承关系追踪
    }

    为 Vue 的运行时警告赋予一个自定义处理函数。注意这只会在开发者环境下生效,在生产环境下它会被忽略。

ignoredElements

  • 类型Array<string | RegExp>

  • 默认值[]

  • 用法

    Vue.config.ignoredElements = [
      'my-custom-web-component',
      'another-web-component',
      // 用一个 `RegExp` 忽略所有“ion-”开头的元素
      // 仅在 2.5+ 支持
      /^ion-/
    ]

    须使 Vue 忽略在 Vue 之外的自定义元素 (e.g. 使用了 Web Components APIs)。否则,它会假设你忘记注册全局组件或者拼错了组件名称,从而抛出一个关于 Unknown custom element 的警告。

keyCodes

  • 类型{ [key: string]: number | Array<number> }

  • 默认值{}

  • 用法

    Vue.config.keyCodes = {
      v: 86,
      f1: 112,
      // camelCase 不可用
      mediaPlayPause: 179,
      // 取而代之的是 kebab-case 且用双引号括起来
      "media-play-pause": 179,
      up: [38, 87]
    }
    <input type="text" @keyup.media-play-pause="method">

    给 v-on 自定义键位别名。

performance

  • 类型boolean

  • 默认值false (自 2.2.3 起)

  • 用法

    设置为 true 以在浏览器开发工具的性能/时间线面板中启用对组件初始化、编译、渲染和打补丁的性能追踪。只适用于开发模式和支持 performance.mark API 的浏览器上。

选项/数据

data

  • 类型Object | Function

  • 限制:组件的定义只接受 function

  • 详细

    Vue 实例的数据对象。Vue 会递归地把 data 的 property 转换为 getter/setter,从而让 data 的 property 能够响应数据变化。对象必须是纯粹的对象 (含有零个或多个的 key/value 对):浏览器 API 创建的原生对象,原型上的 property 会被忽略。大概来说,data 应该只能是数据 - 不推荐观察拥有状态行为的对象。

    一旦观察过,你就无法在根数据对象上添加响应式 property。因此推荐在创建实例之前,就声明所有的根级响应式 property。

    实例创建之后,可以通过 vm.$data 访问原始数据对象。Vue 实例也代理了 data 对象上所有的 property,因此访问 vm.a 等价于访问 vm.$data.a

    以 _ 或 $ 开头的 property 不会被 Vue 实例代理,因为它们可能和 Vue 内置的 property、API 方法冲突。你可以使用例如 vm.$data._property 的方式访问这些 property。

    当一个组件被定义,data 必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例。如果 data 仍然是一个纯粹的对象,则所有的实例将共享引用同一个数据对象!通过提供 data 函数,每次创建一个新实例后,我们能够调用 data 函数,从而返回初始数据的一个全新副本数据对象。

    如果需要,可以通过将 vm.$data 传入 JSON.parse(JSON.stringify(...)) 得到深拷贝的原始数据对象。

  • 示例

    var data = { a: 1 }
    
    // 直接创建一个实例
    var vm = new Vue({
      data: data
    })
    vm.a // => 1
    vm.$data === data // => true
    
    // Vue.extend() 中 data 必须是函数
    var Component = Vue.extend({
      data: function () {
        return { a: 1 }
      }
    })

    注意,如果你为 data property 使用了箭头函数,则 this 不会指向这个组件的实例,不过你仍然可以将其实例作为函数的第一个参数来访问。

    data: vm => ({ a: vm.myProp })

props

  • 类型Array<string> | Object

  • 详细

    props 可以是数组或对象,用于接收来自父组件的数据。props 可以是简单的数组,或者使用对象作为替代,对象允许配置高级选项,如类型检测、自定义验证和设置默认值。

    你可以基于对象的语法使用以下选项:

    • type:可以是下列原生构造函数中的一种:StringNumberBooleanArrayObjectDateFunctionSymbol、任何自定义构造函数、或上述内容组成的数组。会检查一个 prop 是否是给定的类型,否则抛出警告。Prop 类型的更多信息在此
    • defaultany
      为该 prop 指定一个默认值。如果该 prop 没有被传入,则换做用这个值。对象或数组的默认值必须从一个工厂函数返回。
    • requiredBoolean
      定义该 prop 是否是必填项。在非生产环境中,如果这个值为 truthy 且该 prop 没有被传入的,则一个控制台警告将会被抛出。
    • validatorFunction
      自定义验证函数会将该 prop 的值作为唯一的参数代入。在非生产环境下,如果该函数返回一个 falsy 的值 (也就是验证失败),一个控制台警告将会被抛出。你可以在这里查阅更多 prop 验证的相关信息。
  • 示例

    // 简单语法
    Vue.component('props-demo-simple', {
      props: ['size', 'myMessage']
    })
    
    // 对象语法,提供验证
    Vue.component('props-demo-advanced', {
      props: {
        // 检测类型
        height: Number,
        // 检测类型 + 其他验证
        age: {
          type: Number,
          default: 0,
          required: true,
          validator: function (value) {
            return value >= 0
          }
        }
      }
    })

 选项/生命周期钩子

所有生命周期钩子的 this 上下文将自动绑定至实例中,因此你可以访问 data、computed 和 methods。这意味着你不应该使用箭头函数来定义一个生命周期方法 (例如 created: () => this.fetchTodos())。因为箭头函数绑定了父级上下文,所以 this 不会指向预期的组件实例,并且this.fetchTodos 将会是 undefined。

beforeCreate

  • 类型Function

  • 详细

    在实例初始化之后,进行数据侦听和事件/侦听器的配置之前同步调用。

选项/资源

directives

  • 类型Object

  • 详细

包含 Vue 实例可用指令的哈希表。

filters

  • 类型Object

  • 详细

包含 Vue 实例可用过滤器的哈希表。

选项/组合

parent

  • 类型Vue instance

  • 详细

    指定已创建的实例之父实例,在两者之间建立父子关系。子实例可以用 this.$parent 访问父实例,子实例被推入父实例的 $children 数组中。

    节制地使用 $parent 和 $children - 它们的主要目的是作为访问组件的应急方法。更推荐用 props 和 events 实现父子组件通信

mixins

  • 类型Array<Object>

  • 详细

    mixins 选项接收一个混入对象的数组。这些混入对象可以像正常的实例对象一样包含实例选项,这些选项将会被合并到最终的选项中,使用的是和 Vue.extend() 一样的选项合并逻辑。也就是说,如果你的混入包含一个 created 钩子,而创建组件本身也有一个,那么两个函数都会被调用。

    Mixin 钩子按照传入顺序依次调用,并在调用组件自身的钩子之前被调用。

  • 示例

    var mixin = {
      created: function () { console.log(1) }
    }
    var vm = new Vue({
      created: function () { console.log(2) },
      mixins: [mixin]
    })
    // => 1
    // => 2

选项/其他

name

  • 类型string

  • 限制:只有作为组件选项时起作用。

  • 详细

    允许组件模板递归地调用自身。注意,组件在全局用 Vue.component() 注册时,全局 ID 自动作为组件的 name。

    指定 name 选项的另一个好处是便于调试。有名字的组件有更友好的警告信息。另外,当在有 vue-devtools,未命名组件将显示成 <AnonymousComponent>,这很没有语义。通过提供 name 选项,可以获得更有语义信息的组件树。

delimiters

  • 类型Array<string>

  • 默认值["{{", "}}"]

  • 限制:这个选项只在完整构建版本中的浏览器内编译时可用。

  • 详细

    改变纯文本插入分隔符。

  • 示例

    new Vue({
      delimiters: ['${', '}']
    })
    
    // 分隔符变成了 ES6 模板字符串的风格

实例property

vm.$data

  • 类型Object

  • 详细

    Vue 实例观察的数据对象。Vue 实例代理了对其 data 对象 property 的访问。

搭建Vue开发环境

①打开vue官网,并点击直接用<script>引入

②点击开发版本和生产版本,下载vue.js和vue.min.js到桌面

 

 

 ③打开Visual Studio Code,并创建文件夹js,把这两个文件放入其中

 

 ⑤点击Vue Devtools

 ⑥点击Get the Chrome Extension,添加vue.js.devtools到Chrome

 Hello小案例

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>初始vue</title>
    <!-- 引入Vue -->
    <script type="text/javascript"src="../js/vue.js"></script>
</head>
<body>

    <!-- 
       初识Vue:
        1.想让Vue工作,就必须创建一个vue实例,且要传入一个配置对象
        2.root容器里的代码依然符合html规范,只不过配入了一些特殊的Vue语法
        3.root容器里的代码被称为【Vue模板】 
     -->
    <!-- 准备好一个容器 -->
    <div id="root">
        <h1>Hello,{{name}}</h1>
    </div>

    <script type="text/javascript">
    Vue.config.productionTip=false; //阻止 vue在启动时生成生产提示

    //创建vue实例
    const x=new Vue({
        el:'#root',//el用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串
        data:{//data中用于存储数据,数据供el所指定的容器去使用,值我们暂时先写成一个对象
            name:'尚硅谷'
        }
    })
    </script>
</body>
</html>

 运行结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值