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 相关文章推荐
jQuery编写widget的一些技巧分享
Oct 28 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 Javascript
利用css+原生js制作简单的钟表
Apr 07 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
Feb 20 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
Angular如何引入第三方库的方法详解
Jul 13 Javascript
使用D3.js创建物流地图的示例代码
Jan 27 Javascript
浅谈Vue网络请求之interceptors实际应用
Feb 28 Javascript
详解React中setState回调函数
Jun 14 Javascript
node中的session的具体使用
Sep 14 Javascript
15个顶级开源JavaScript框架和库
Oct 10 Javascript
vue组件开发之tab切换组件使用详解
Aug 21 Javascript
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
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
jQuery 使用手册(五)
2009/09/23 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
微信小程序webSocket的使用方法
2020/02/20 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Django URL传递参数的方法总结
2016/08/28 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
Django models.py应用实现过程详解
2019/07/29 Python
Lombok插件安装(IDEA)及配置jar包使用详解
2020/11/04 Python
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
Linux开机引导的步骤是什么
2015/10/19 面试题
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
物业管理毕业生个人的求职信
2013/11/30 职场文书
关于毕业的广播稿
2014/01/10 职场文书
养殖项目策划书范文
2014/01/13 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
公司员工奖惩制度
2015/08/04 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书