Vue.js一个文件对应一个组件实践


Posted in Javascript onOctober 27, 2016

这方面官网给的示例是需要工具来编译的,但是nodejs又没有精力去学,只好曲线救国。VueJS的作者在另一个网站有一篇文章讲到可以用jQuery.getScript或RequireJS实现组件,却没有给示例,于是自己摸索出了一种方法。

用到的工具:

vue.js --- 0.12.+ (需要0.12中async component支持)
require.js
text.js --- RequireJS text plugin https://github.com/requirejs/text

文件列表

index.html
index.js
comp.js (组件在这里定义)
comp.html (组件的模板)

实际上组件分成了js和html,html是模板内容,这里似乎与“一个文件对应一个组件”稍有不符,但如果模板内容比较多,这是有必要的,也更便于维护。 直接上代码。

comp.html -- 组件模板

<h2>{{title}}</h2>
<p>{{content}}</p>
comp.js -- 组件定义
define(['text!comp.html'], function (temp) { // 在requirejs中定义一个模块,依赖为模板文本
 return {
 props: ['title', 'content'],
 template: temp
 }
});

至此,一个简单的模板就建好了。然后就是在VueJS中注册这个组件。

index.js

require.config({
 paths: { // 指定text.js和vue.js的路径,不需要.js后缀,详见RequireJS文档
 text: '../../../assets/requirejs/text',
 vue: '../../../assets/vue/vue'
 }
});

require(['vue'], function (Vue) { // 依赖vue.js
 Vue.component('comp', function (resolve) { // 注册一个异步组件
 require(['comp'], function (comp) { // 因为我们要按需加载组件,因此require(['comp'])必须在function里
 resolve(comp)
 })
 });
 new Vue({
 el: 'body'
 });

 //new Vue({
 // el: 'body',
 // components: {
 // comp: function (resolve) {
 // require(['comp'], function (comp) {
 // resolve(comp)
 // })
 // }
 // }
 //});
});

index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title></title>
</head>
<body>

<component is="comp" title="我是一个组件" content="fjkldsjfkldjsklgjks"></component>

<script data-main="index" src="../../../assets/require.js"></script>

</body>
</html>

运行代码,把<component>注释掉就能看到区别。

如果组件比较多,注册组件就会很繁琐,因此可以把这部分提炼出来。

改进后的index.js

require.config({
 paths: {
 text: '../../../assets/requirejs/text',
 vue: '../../../assets/vue/vue'
 }
});

function conponent(name) {
 return function (resolve, reject) {
 require([name], function (comp) {
 resolve(comp)
 })
 }
}

require(['vue'], function (Vue) {
 Vue.component('comp', conponent('comp'));
 Vue.component('comp2', conponent('comp2'));

 new Vue({
 el: 'body'
 });
});

至此。

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
javascript类继承机制的原理分析
Sep 12 Javascript
ExtJs使用IFrame的实现代码
Mar 24 Javascript
javascript实现TreeView 无刷新展开的实例代码
Jul 13 Javascript
jQuery内部原理和实现方式浅析
Feb 03 Javascript
js简单实现Select互换数据的方法
Aug 17 Javascript
JS实现的颜色实时渐变效果完整实例
Mar 25 Javascript
AngularJS通过$http和服务器通信详解
Sep 21 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
关于vue单文件中引用路径的处理方法
Jan 08 Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 Javascript
vue项目实现分页效果
Mar 24 Vue.js
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 #Javascript
node.js文件上传处理示例
Oct 27 #Javascript
Vue.js表单控件实践
Oct 27 #Javascript
vue实现可增删查改的成绩单
Oct 27 #Javascript
vuex实现简易计数器
Oct 27 #Javascript
微信小程序  生命周期详解
Oct 27 #Javascript
require.js+vue开发微信上传图片组件
Oct 27 #Javascript
You might like
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
python学习开发mock接口
2019/04/28 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
银行实习自我鉴定
2013/10/12 职场文书
企划专员岗位职责
2013/12/09 职场文书
海南地接欢迎词
2014/01/14 职场文书
公司年会主持词
2014/03/22 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
激励员工的口号
2014/06/16 职场文书
干部作风建设心得体会
2014/10/22 职场文书
2015元旦节寄语
2014/12/08 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
职工宿舍管理制度
2015/08/05 职场文书
Python中递归以及递归遍历目录详解
2021/10/24 Python
HttpClient实现文件上传功能
2022/08/14 Java/Android