组件是Vue最强大的功能之一。
组件是一组可被复用的具有一定功能,独立的完整的代码片段,这个代码片段可以渲染一个完整视图结构
组件开发
如何注册组件?
第一步,在页面HTML标签中使用这个组件名称,像使用DOM元素一样。(通常是一个自定义元素)。
<div id="app">
<my-component></my-component>
</div>
第二步,使用Vue.extend方法创建一个组件
var MyComponent = Vue.extend({
// .........
})
在extend方法中接收一个对象.
这个对象是一个描述组件的对象,它具有Vue实例化对象上的属性方法,它还有一些特殊的属性
template:组件内部渲染模的板字符串
props:父组件向组件内部传入数据的引用
<div id="app">
<input type="text" v-model="inputVal"/>
<my-component msg="you" v-bind:inputtext="inputVal"></my-component>
</div>
想在template里用这个msg和inputVal
组件内部还没有这个msg和inputVal
v-bind是为了创造个js环境
所以将组件中的属性值引入组件内部通过props属性
var MyComponent = Vue.extend({
props:[‘msg‘,‘inputtext‘],
//定义模板字符串
template: ‘<div>hello world!{{msg}}</div>‘
})
第三步,使用Vue.component方法注册组件。
Vue.component(‘my-component‘, MyComponent)
eg:
//页面中使用组件
<div id="app">
<my-component></my-component>
</div>
// 定义组件
var MyComponent = Vue.extend({
//定义模板字符串
template: ‘<div>hello world!</div>‘
})
// 注册组件
Vue.component(‘my-component‘, MyComponent)
//创建vue的实例化对象
new Vue({
el: ‘#app‘
})
结果:
<div id="example">
<div>hello world!</div>
</div
在vue的组件中他是一个独立个体,因此他的事件,数据等等要绑定在组件的内部不是vue的实例化对象
注意:
子组件向父组件通信,通过子组件实例化对象上的$dispatch方法实现
第一个参数表示消息的名称
从第二个参数开始表示子组件向父组件传递的数据
eg:
var MyComponent = Vue.extend({
template: ‘<div>hello world!</div><button v-on:click="toUpper"></button>‘,
methods:{
toUpper:function(){
//具体的逻辑
//作用域 this指的是组件的实例化对象
this.$dispatch("abc",123)
}
}
})
为了接收子组件向父组件传送的消息。在父组件中订阅该消息 在events属性中定义这些消息
属性表示消息的名称
属性值是一个函数,表示处理消息的回调函数,参数是子组件发送消息时候传递参数,作用域 vue的实例化对象
new Vue({
el: ‘#app‘,
event:{
//接收子组件传递的数据 123
‘abc‘:function(){
//作用域 vue的实例化对象
//参数就是[123]
}
}
})
vue中的组件
时间: 2024-10-21 02:38:32
vue中的组件的相关文章
vue中自定义组件(插件)
vue中自定义组件(插件) 原创 2017年01月04日 22:46:43 标签: 插件 在vue项目中,可以自定义组件像vue-resource一样使用Vue.use()方法来使用,具体实现方法: 1.首先建一个自定义组件的文件夹,比如叫loading,里面有一个index.js,还有一个自定义组件loading.vue,在这个loading.vue里面就是这个组件的具体的内容,比如: <template> <div> loading.............. </div
Vue 中数据流组件
好久不见呀,这两年写了很多很多东西,也学到很多很多东西,没有时常分享是因为大多都是我独自思考.明年我想出去与更多的大神交流,再修筑自己构建的内容. 有时候我会想:我们遇到的问题,碰到的界限,是别人给的还是我们自己给的?其实我觉得自己选择的方向是对的,但是有时难免会怀疑,是否有人和我在做一样的事情,我希望找到有趣的伙伴,做一些有趣的事情. Vue 中数据流组件 又将年终了,该做年终总结了呀..最近花了一些时间,升级了一下我们的技术架构,使用 vue 作为我们的框架.延续传统,我们仍然需要开发一些
Vue中的组件通信
这两天在学Vue,记录一下我认为比较重要的东西 Vue中的组件通信: 我们可以分为3个步骤来: 1.声明局部子组件,简称 "声子", 2.挂载到dom树上面去,简称:"挂子" 3.进行使用,简称:"用子" 上面写的别人可能看不太明白,毕竟只是我的看法: <body> <div id="app"> </div> </body> 先写一个div,给它一个ID=app <scri
vue中父子组件传值
vue中,在子组件设置props对象,来接受父组件传来的值 父组件中,:冒号后面的绿色变量必须和子组件中props的变量保持一致 子组件: type设置值的类型 default设置默认值,当没有给子组件传值时使用default里的内容 子传父: $emit 如果是子组件想传递数据给父组件,需要派发自定义事件,使用 $emit 派发,父组件使用v-on接收监控(v-on可以简写成@) 父组件在html代码中这样接收,changeSelect是一个自己在methods中定义的方法 子组件在metho
vue中局部组件的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> {{msg}} </div> <script src="vue.js">
VUE中父组件向子组件传递数据 props使用
VUE中,子组件是不能直接访问父组件的数据(一般来说,当然如果你要破坏原则也是可以),如下< <body> <div id="fathercomponent"> <ul> <li v-for="item in fatherdatas">{{item}}</li> <!--父组件可以访问它自己的数据--> </ul> <child-component></chi
vue中父组件如何监听子组件值的变化
vue中我们会遇到很多父子组件通信的需求, 下面简单列一下,父子组件通信的几种情况 1:父组件向子组件传值:使用prop向子组件传值: 2:子组件实时监听父组件传来的值的变化:使用watch去监听父组件传来的值: 3:父组件可以通过this.$refs.name.去访问子组件的值或方法: 4:子组件可以通过this.$parent.去访问父组件的值或方法: 总结了一下,感觉好像挺全面的,好像不缺啥了.... 但是仔细一想,父组件如何去监听子组件的值呢?如何根据子组件中的某个值的变化,父组件作出响
vue中的组件化开发
常常听一些前辈说vue是react的组件化+angular的数据绑定的结合体: 最近刚刚开始使用vue开发项目,我也是在摸索中前进,现在我们来说一说vue的组件化开发. 实际的项目开发,并不像一些文章中的提到的模式,而是如图所示的模式: App.vue是项目的入口.组件实则也是一个以.vue为后缀的文件.我们可以在src\components文件夹下创建一个xxx.vue: 然后在文件中编写可以提出的公共部分的代码为组件.然后在您需要调用该组件的页面,如下图方式调用: 是不是很简单.现在来解释一
vue中props组件传值
props用来改变子组件属性,并且子组件中的驼峰式在使用时标签中要改成横线式,比如mesAlet==>mes-alet 父组件: <child message="hello!"></child> 子组件: Vue.component('child', { // 声明 props props: ['message'], // 就像 data 一样,prop 可以用在模板内 // 同样也可以在 vm 实例中像"this.message"这样