使用Vue开发网站之路1-单个组件的开发
2017-04-26 18:05
726 查看
因为对Vue的好奇,我最近尝试着用Vue去做一些网站的开发。尝到了它的甜头,我感觉到了它某些地方的不便(主要跟Jquery对比)。
组件式开发的优点就是可以在不同的页面使用,造一次轮子就可以了,这个是前端的很早之前就提倡的路。不过组件式开发由于是低耦合的,所以它的组件间通信并不十分方便,当然也有可能我接触时间略短,两周左右吧。
我从简单地开始写,就当笔记了。
单组件(局部组件和全局组件)
局部组件
使用方法:
例子:
注意:全局组件只有在新建Vue之前新建才有效,而且有效范围为vue的el内。
组件式开发的优点就是可以在不同的页面使用,造一次轮子就可以了,这个是前端的很早之前就提倡的路。不过组件式开发由于是低耦合的,所以它的组件间通信并不十分方便,当然也有可能我接触时间略短,两周左右吧。
我从简单地开始写,就当笔记了。
单组件(局部组件和全局组件)
局部组件
使用方法:
例子:
//切换中英文 var changelan = { template:'<div class="changeLan">\ <span value="EN" v-on:click="changelan">English</span><span>|</span>\ <span value="CN" v-on:click="changelan">中文</span>\ </div>', methods:{ changelan:function(e) { var target = $(e.target); location.href="../index.html?lan=" + target.attr("value"); } } }
new Vue({ el:'header', components:{ 'change-lan':changelan } });
这个是一个切换中英文的组件,只有点击事件,事件的方法放到methods里面。
全局组件
新建方式:Vue.component(‘组件名’,其他参数)
例子:
Vue.component('select-item',{ template:'<li v-bind:pid="item.id" v-on:click="leftUITarget">{{item.name}}</li>', props:['item'], //自定义控件可以获取data里面的属性,但是获取的代码必须放到本对象里面,data必须是一个方法,而且要获取的数据必须放在function的return里面 data:function(){ return {} //return request(); }, //自定义组件的方法放到这里,event就是Dom对象 methods:{ leftUITarget:function(event){ var target = $(event.target); target.siblings().removeClass("selected"); target.addClass('selected'); $("#hasChoose span").eq(0).html(" " + target.html()); $("#hasChoose span").eq(0).siblings().html(""); //var result = request(target.data("pid")); var result = "{\"errorCode\":\"200\",\"data\":[{\"id\":\"00\",\"name\":\"磁善家\"},{\"id\":\"11\",\"name\":\"彩阑阁\"},{\"id\":\"22\",\"name\":\"恋琪\"},{\"id\":\"33\",\"name\":\"有家喜铺\"},{\"id\":\"44\",\"name\":\"磁善家00\"},{\"id\":\"55\",\"name\":\"彩阑阁00\"},{\"id\":\"66\",\"name\":\"恋琪00\"},{\"id\":\"77\",\"name\":\"有家喜铺00\"},{\"id\":\"88\",\"name\":\"磁善家000\"},{\"id\":\"99\",\"name\":\"彩阑阁000\"},{\"id\":\"100\",\"name\":\"恋琪000\"},{\"id\":\"110\",\"name\":\"有家喜铺000\"}]}"; result = $.parseJSON(result); var html = createChildLi(result.data); $("#inner_ul2").html(html); } } })
new Vue({ el:'main', //html只能读取new Vue里面的data data:{ result:'' }, created:function(){ this.result = request(); //result之前一定要添加this,指该Vue对象 } //非自定义组件的方法放在这里 })
注意:全局组件只有在新建Vue之前新建才有效,而且有效范围为vue的el内。
相关文章推荐
- 使用Vue开发网站之路2-多组件通信3(父子间通信,组件与vue通信)
- 使用Vue开发网站之路2-多组件通信1(利用bus总线进行事件触发)
- 使用Vue开发网站之路3-slot内容分发实现基础表单,衍生表单
- Vue组件开发基础——使用流程
- 使用vue开发多级多选菜单组件
- 使用vue开发web app - 1 - 初步使用vue创建组件
- vuejs高德地图位置选择组件的开发及使用/vuejs地图开发
- Vue.js组件使用开发实例教程
- 使用Vue开发动态刷新Echarts组件的教程详解
- vue组件的开发使用-组件的创建
- 前端Vue开发过程使用相关组件及库
- Vue全局组件开发,Vue.use(xxx)一次引入,全局使用 【Vue 非父子组件通信】
- 饿了么基于Vue2.0的通用组件开发之路(分享会记录)
- 使用vue开发输入型组件更好的一种解决方式(子组件向父组件传值,基于2.2.0)
- (五)vue开发 - 使用 vue-layer-mobile组件实现toast,loading效果
- 分享一个使用 vue.js 开发的网站
- 详解windows下vue-cli及webpack 构建网站(三)使用组件
- 分享一个使用 vue.js 开发的网站
- 使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
- 使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理