Because async components are not bundled with your app, they need to be loaded when requested. This means that your network could be slow, go down, or the file could be completely missing. This lesson shows you how to handle these scenarios with Vue…
@Prop  父子组件之间传值 Install: npm install --save vue-property-decorator Child: <template> <div> {{fullMessage}} </div> </template> <script lang="ts"> import Vue from 'vue' import {Component, Prop} from 'vue-property-deco…
1.本文将讲述 方法 Vue.extend Vue.mixin 与 new Vue({mixins:[], extend:{}})的区别与原理 先回顾一下 Vue.mixin 官网如下描述: Vue.mixin( mixin )全局注册一个混入,影响注册之后所有创建的每个 Vue 实例.插件作者可以使用混入,向组件注入自定义的行为. 既然可以影响到注册后的所有实例,那么该方法注入的方法和属性都存放在哪里呢(构造函数的options属性上),我们一起来看看该方法的定义 Vue.mixin = fu…
Vue.use Vue.use 的作用是安装插件 Vue.use 接收一个参数 如果这个参数是函数的话,Vue.use 直接调用这个函数注册组件 如果这个参数是对象的话,Vue.use 将调用 install 方法来注册组件 * 官方文档: * Vue.use 用于安装 Vue.js 插件. * 如果插件是一个对象,必须提供 install 方法 * 如果插件是一个函数,它会被作为 install 方法 * install 方法调用时,会将 Vue 作为参数传入 Vue.component Vu…
如果我们的Vue项目中没有用到任何UI框架的话,为了更好的用户体验,肯定会用到loading和toast.那么我们就自定义这两个组件吧. 1.Toast组件 首先,在common下新建global文件夹,存放我们的toast.vue和toast.js两个文件(当然文件的具体位置你可以自行安排). (1). toast.vue <template lang="html"> <div v-if="isShowToast" class="toa…
Vue.component前不要加 new,否则报错: Uncaught TypeError: Cannot read property '_base' of undefined…
extend 是构造一个组件的语法器. 你给它参数 他给你一个组件 然后这个组件 你可以作用到Vue.component 这个全局注册方法里, 也可以在任意vue模板里使用apple组件 var apple = Vue.extend({ …. }) Vue.component(‘apple’,apple) 你可以作用到vue实例或者某个组件中的components属性中并在内部使用apple组件 new Vue({ components:{ apple:apple } }) Vue.compon…
解决方法: 定义了两个 Vue.component 在 el 中使用的时候要用 双标签, 用单表标签的时候,只会显示第个 组件间 这样写只显示 welcome-button 组件 <welcome-button @welcome="sayHi"/> <magic-eight-ball @give-advice="showAdvice"/> -------------------------------- 改成双标签后,就会显示两个组件了. &…
Vue.extend 返回的是一个 扩展实例构造器, 也就是一个预设了部分选项的Vue实例构造器 Var myExtend = Vue.extend({ //预设选项 })//返回一个 扩展实例构造器 //然后就可以这样来使用 var vE = new myExtend({ //其它选项 }) Vue.component 是用来全局注册组件的方法,其作用是将通过 Vue.extend 生成的扩展实例构造器注册(命名)为一个组件,可以简单理解为当在模板中遇到该组件名称作为标签的自定义元素时,会自动…
引入 vue.js. HTML <div id="app"></div> CSS .greeting { padding: 3rem 1.5rem; background: pink; text-align: center; font-family: Georgia, serif; } JS Vue.component('sayHi', { template: '<p class="greeting">Hi</p>'…