vuecomponent,vuecomponent属性读取
vue component属性
组件是可以复用的vue实例,所以它们与 new Vue 接收相同的选项,例如 data、computed、watch、methods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项。
全局注册 局部注册
父子组件通信:从父(组件)到子(组件里边的元素),用props属性绑定
vue 全局组件component 获取props值
关键点:通过:id="getId(info)"将info属性(props)值传递到方法,然后再设置值,网上的watch方法试了无效,这个方法实测有效
源码如下:
page v-bind:info="paginationVo" /page
// 注册 - 名字不能大写 分页组件page v-bind:info="paginationVo" /page
Vue.component('page', {
// 声明 属性
props: ['info'],
template: 'ul :id="getId(info)" class="c_page"li v-if="isShowPreBtn"button v-on:click="btnHandler(-1)"上一页/button/lili v-if="isShowNextBtn"button v-on:click="btnHandler(-2)" 下一页/button/li/ul',
data: function() {
return {
counter: 0,
paginationVo:{},
isShowPreBtn:false,
isShowNextBtn:false,
}
},
mounted() {
console.log("-------mounted:"+JSON.stringify(this.paginationVo));
vue中路由的component起了什么作用
conponent是组件
1、组件就是一个可以独立复用的页面结构,也就是说使用vue的语法来写页面布局
2、component就是相当于传统的html、css、和js的特效部分
Vue的component可以使用json传递数据吗?
props:支持数字、布尔值、数组、对象类型数据,数据能够通过静态或动态方式被传递。
一般获取json数据后,一般会转换成object对象类型的数据,所以可以使用。
vue通过component组件渲染顺序错乱
vue通过component组件渲染顺序错乱解决措施:
1、减少事件队列,接口直接写到渲染数据的组件里,不让接口数据在其它组件再传到渲染数据的组件里。
2、不要使用vuex传参,直接使用兄弟组件传参,可以更直观的看到事件队列执行顺序。
3、判断数据渲染的条件,要细心耐心,做好条件判断再渲染数据。
vue.extend、 new vue()、component、render
前言
vue菜鸟一枚,对vue.extend、 new vue()、component、render比较懵逼,理不清关系,用法,查看了一些博文后,这里记录一下自己一点浅显的理解。
1.vue.extend、 new vue()
vue.extend() 是new vue() 的一个子类。用法都一样,都是实例化一个对象,然后是挂载到到dom元素上。
注意:
(1)挂载到dom元素,其次vue.extend()里面的的HTML模板 (template:"phello/p") 会覆盖被挂载的那个dom元素。 new vue() 里面的 render 的模板也会覆盖被挂载的那个dom元素。
(2)vue.extend()中的data是一个函数且返回一个对象。
2.vue.component全局注册和局部注册components
通过component注册组件不会覆盖原有的dom元素,直接把标签放到相应元素内就可使用。
下面进行实例对比
1.component注册使用
2.new 实例().$mount() 被挂在的元素会被覆盖
3.new vue()挂载到组件, render渲染的组件会覆盖被挂在的dom元素
注意
1.vue.extend()完了需要操作new 实例().$mount() ,才能挂载。
2.图片中的两种挂载方法
延伸 :vue.extend()的传参propsData
参考: