首页 >> js开发 >> jsvue组件入门知识全梳理js大全
jsvue组件入门知识全梳理js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
组件组件概念:template是入口组件,那么挂载在template下的组件是入口组件的子组件局部组件局部组件三步口诀:声子,挂子,用子
声明一个局部组件,变量名首字母大写(为了和H5标签做区分),里面的内容和vue实例化对象的内容相似,但是不需要el,data必须是一个函数,函数返回一个对象
把组件挂载到入口文件的components对象中。
在入口文件的template中使用,可以是双闭合标签也可以是单闭合标签
声明一个局部组件,变量名首字母大写(为了和H5标签做区分),里面的内容和vue实例化对象的内容相似,但是不需要el,data必须是一个函数,函数返回一个对象把组件挂载到入口文件的components对象中。在入口文件的template中使用,可以是双闭合标签也可以是单闭合标签全局组件全局组件
Vue.component(name,options)
Vue.component(name,options)第一个参数是组件的名称第二个参数是组件的对象注意全局组件要在创建Vue实例化对象前,否则会报错
// 全局组件(要在创建Vue实例之前)
Vue.component('Vbtn', {
template: ``
})
// 1、创建一个入口组件
// 2、创建头部组件,侧边栏组件和内容组件
var Heard = {
template: `
`
}
var Aside = {
template: `
`
}
var Content = {
template: `
`
}
var App = {
template: `
class="content"/>
`,
components: {
Heard,
Aside,
Content
}
}
new Vue({
el: "#app",
data() {
return {
msg: "这是测试"
}
},
template: `
`,
components: {
App
}
});
// 全局组件(要在创建Vue实例之前)
Vue.component('Vbtn', {
template: ``
})
// 1、创建一个入口组件
// 2、创建头部组件,侧边栏组件和内容组件
var Heard = {
template: `
`
}
var Aside = {
template: `
`
}
var Content = {
template: `
`
}
var App = {
template: `
class="content"/>
`,
components: {
Heard,
Aside,
Content
}
}
new Vue({
el: "#app",
data() {
return {
msg: "这是测试"
}
},
template: `
`,
components: {
App
}
});组件深入组件深入问:为什么要通过父亲获取数据,在传递到子组件呢?答:通过父亲向后端获取数据,然后在分发到各组件可以减少后端的交互,不然各个组件都向后端发送请求影响性能见下图:父子组件传值(父传子)父子组件传值(父传子)1、父 用子 时通过 绑定自定义属性 传递,用子绑定自定义属性2、子要 声明 props:['属性']接收父绑定的自定义属性声明3、收到就是自己的随便用在template中直接使用 在js中this.属性名小补充:绑定自定义属性时:常量传递直接用,变量传递加冒号总结父传子总结父传子父用子:先声子、挂子、用子父传子:父传子(属性)、子声明(接收)、子使用子传父子传父1、父 用子 绑定 自定义事件用子自定义事件2、子触发自定义事件:this.$emit()
第一个参数是**自定义事件名**
第二个参数是**传递进去的值**

第一个参数是**自定义事件名**
第二个参数是**传递进去的值**
全局组件的数据传递 1、通过VUE内置组件slot分发内容原因:如果不使用slot无法修改全局组件的内容作用:slot元素作为承载分发内容的出口2、父子传值自定义属性传递常量直接使用不需要加冒号自定义属性传递常量直接使用不需要加冒号如果要触发原生的事件需要通过 @原生事件名.native调用3、具名插槽在子组件中声明使用vue的内置组件:
父组件中调用
这样做的目的:可以一条数据一个坑,数据不会乱了附加功能 附加功能 1、过滤器filters1、作用:对当前数据添油加醋2、语法:声明在组件内使用filters对象,返回一个函数,函数一定要有返回值3、调用:template中调用过滤器:数据属性|过滤器名字
var Content = {
template: `
v-model = "msg"/>
`,
data(){
return{
msg:10
}
},
filters:{
RmbData(value){
return '$'+value
}
}
}
var Content = {
template: `
v-model = "msg"/>
`,
data(){
return{
msg:10
}
},
filters:{
RmbData(value){
return '$'+value
}
}
}生命周期生命周期总结总结
声明一个局部组件,变量名首字母大写(为了和H5标签做区分),里面的内容和vue实例化对象的内容相似,但是不需要el,data必须是一个函数,函数返回一个对象
把组件挂载到入口文件的components对象中。
在入口文件的template中使用,可以是双闭合标签也可以是单闭合标签
声明一个局部组件,变量名首字母大写(为了和H5标签做区分),里面的内容和vue实例化对象的内容相似,但是不需要el,data必须是一个函数,函数返回一个对象把组件挂载到入口文件的components对象中。在入口文件的template中使用,可以是双闭合标签也可以是单闭合标签全局组件全局组件
Vue.component(name,options)
Vue.component(name,options)第一个参数是组件的名称第二个参数是组件的对象注意全局组件要在创建Vue实例化对象前,否则会报错
// 全局组件(要在创建Vue实例之前)
Vue.component('Vbtn', {
template: ``
})
// 1、创建一个入口组件
// 2、创建头部组件,侧边栏组件和内容组件
var Heard = {
template: `
我是头部组件
`
}
var Aside = {
template: `
我是侧边栏组件
`
}
var Content = {
template: `
我是内容组件
`
}
var App = {
template: `
`,
components: {
Heard,
Aside,
Content
}
}
new Vue({
el: "#app",
data() {
return {
msg: "这是测试"
}
},
template: `
`,
components: {
App
}
});
// 全局组件(要在创建Vue实例之前)
Vue.component('Vbtn', {
template: ``
})
// 1、创建一个入口组件
// 2、创建头部组件,侧边栏组件和内容组件
var Heard = {
template: `
我是头部组件
`
}
var Aside = {
template: `
我是侧边栏组件
`
}
var Content = {
template: `
我是内容组件
`
}
var App = {
template: `
`,
components: {
Heard,
Aside,
Content
}
}
new Vue({
el: "#app",
data() {
return {
msg: "这是测试"
}
},
template: `
`,
components: {
App
}
});组件深入组件深入问:为什么要通过父亲获取数据,在传递到子组件呢?答:通过父亲向后端获取数据,然后在分发到各组件可以减少后端的交互,不然各个组件都向后端发送请求影响性能见下图:父子组件传值(父传子)父子组件传值(父传子)1、父 用子 时通过 绑定自定义属性 传递,用子绑定自定义属性2、子要 声明 props:['属性']接收父绑定的自定义属性声明3、收到就是自己的随便用在template中直接使用 在js中this.属性名小补充:绑定自定义属性时:常量传递直接用,变量传递加冒号总结父传子总结父传子父用子:先声子、挂子、用子父传子:父传子(属性)、子声明(接收)、子使用子传父子传父1、父 用子 绑定 自定义事件用子自定义事件2、子触发自定义事件:this.$emit()
第一个参数是**自定义事件名**
第二个参数是**传递进去的值**

第一个参数是**自定义事件名**
第二个参数是**传递进去的值**
全局组件的数据传递 1、通过VUE内置组件slot分发内容原因:如果不使用slot无法修改全局组件的内容作用:slot元素作为承载分发内容的出口2、父子传值自定义属性传递常量直接使用不需要加冒号自定义属性传递常量直接使用不需要加冒号如果要触发原生的事件需要通过 @原生事件名.native调用3、具名插槽在子组件中声明使用vue的内置组件:
父组件中调用
这样做的目的:可以一条数据一个坑,数据不会乱了附加功能 附加功能 1、过滤器filters1、作用:对当前数据添油加醋2、语法:声明在组件内使用filters对象,返回一个函数,函数一定要有返回值3、调用:template中调用过滤器:数据属性|过滤器名字
var Content = {
template: `
v-model = "msg"/>
{{msg|RmbData}}
`,
data(){
return{
msg:10
}
},
filters:{
RmbData(value){
return '$'+value
}
}
}
var Content = {
template: `
v-model = "msg"/>
{{msg|RmbData}}
`,
data(){
return{
msg:10
}
},
filters:{
RmbData(value){
return '$'+value
}
}
}生命周期生命周期总结总结