1.引用方式

我们使用Vue进行普通页面开发却不使用webpack等技术时,定义组件可以只依赖单js文件进行开发

然后像正常引用js文件那样进行引用

    <script src="../Content/plugins/selectIcon/selectIcon.js"></script>

2.组件定义

组件的html内容我们可以使用script模板、字符串、ajax请求获取等方式进行加载,这里为了保持组件引用简单,我们对一段html进行压缩成一行定义为变量。

var html = '<modal  v-model="isshow" title="选择图标" @on-ok="ok" @on-cancel="cancel"><i-form style="height:300px;overflow-y:scroll"></i-form></modal>';
// 注册
Vue.component('icon-component', {
props: ['isshow'],
template: html,
mounted: function () {
var _this = this;
_this.$nextTick(function () {
$(".icons-item").on("click", function () {
$(".icons-item").removeClass("icons-itemact");
$(this).addClass("icons-itemact");
//添加标记
$("p[data-v-4ed37512]").removeAttr("data-flag");
$("p", $(this)).attr("data-flag", true);
}); $(".icons-item").on("dblclick", function () {
var icon = $("p", $(this)).text().trim();
$("#txtSelectIcon").val(icon);
_this.$emit('myevent', '0');
});
});
},
methods: {
ok: function () {
var icon = $("p[data-flag]").text().trim();
$("#txtSelectIcon").val(icon);
this.$emit('myevent', '0');
},
cancel: function () { this.$emit('myevent', '0'); }
}
})

3.父页面使用

    <div id="SelectICONModal">
<keep-alive>
<icon-component v-bind:isshow="isShow" @myevent="CloseIcon"></icon-component>
</keep-alive>
</div>
var iconVueObj = new Vue({
el: "#SelectICONModal",
data: {
isShow: false
},
methods: {
CloseIcon() {
this.isShow = false;
}
}
});

4.页面传值

我们页面传值使用两种方式进行传递

父页面像子页面传值使用props进行传递

<!--父页面-->
<icon-component v-bind:isshow="isShow" ...
//组件定义
Vue.component('icon-component', {
props: ['isshow'],...

子页面像父页面传值使用$emit触发定义的事件

<!--父页面-->
<icon-component v-bind:isshow="isShow" @myevent="CloseIcon"></icon-component>
//父页面初始化组件时,定义方法
methods: {
CloseIcon() {
this.isShow = false;
}
}
//组件触发
this.$emit('myevent', '0');
 

使用Vuejs编写单js组件的更多相关文章

  1. Vuejs - 单文件组件

    为什么需要单文件组件 在之前的实例中,我们都是通过 Vue.component 或者 components 属性的方式来定义组件,这种方式在很多中小规模的项目中还好,但在复杂的项目中,下面这些缺点就非 ...

  2. JS组件系列——Form表单验证神器: BootstrapValidator

    前言:做Web开发的我们,表单验证是再常见不过的需求了.友好的错误提示能增加用户体验.博主搜索bootstrap表单验证,搜到的结果大部分都是文中的主题:bootstrapvalidator.今天就来 ...

  3. vue.js单文件组件中非父子组件的传值

    最近在研究vue.js,总体来说还算可以,但是在web开发群里有一些人问在单文件组件开发模式中非父子组件如何传值的问题,今天在这里讲讲,希望对大家有所帮助! 在官网api中的这段讲解很少,也很模糊:官 ...

  4. Vue.js的组件(slot/动态组件等)、单文件组件、递归组件使用

    一.组件 1> 组件命名方式有两种(注意:在DOM模板中只有kebab-case命名方法才生效): html中引用组件: <!-- 在DOM模板中,只有 kebab-case命名才生效 - ...

  5. 推酷文章中编写js组件系列文章整理

    一步一步实现JS拖拽插件 http://www.tuicool.com/articles/RBbmMjY JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享 http://ww ...

  6. 10: vue-router和单文件组件

    1.1 vue-router路由基本使用 官网: https://router.vuejs.org/zh/api/#router-link 1.安装vue-router bower info vue- ...

  7. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

  8. 移动web端的react.js组件化方案

     背景: 随着互联网世界的兴起,web前端开发的方式越来越多,出现了很多种场景开发的前端架构体系,也对前端的要求日益增高,早已经不是靠一个JQuery.js来做前端页面的时代了,而今移动端变化最大,近 ...

  9. webpack入坑之旅(五)加载vue单文件组件

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

随机推荐

  1. C语言中的文本流与二进制流的区别

    近期看到了文本流和二进制流的区别,书上讲的比较含糊,理解不透彻,于是细细琢磨了下,把心得跟大家分享一下: 一.首先回答,什么是文件,流 一个文件通常就是磁盘上的一段命名的存储区.比如 stdio.h ...

  2. mybatis 循环遍历

    /****Service/ public ServiceMessage<MemberFreedomRepModel> getMFListByPay(Long memberId,Long f ...

  3. ios 图片处理( 1.按比例缩放 2.指定宽度按比例缩放

    本文转载至 http://blog.sina.com.cn/s/blog_6f29e81f0101tat6.html //按比例缩放,size 是你要把图显示到 多大区域 CGSizeMake(300 ...

  4. 打造不死的asp木马

    作者:黑色记忆本文已发表于<黑客X档案>杂志第十期 版权归<黑客X档案>所有 转载请注明版权 想不到,前几天我才发现,我千辛万苦收集的asp木马,居然没有几个不被Kill的.常 ...

  5. c++11 处理时间和日期

    c++11提供了日期时间相关的库 chrono,通过chrono库可以很方便的处理日期和时间. 1. 记录时间长度的duration template<class Rep, class Peri ...

  6. poj_2709 贪心算法

    poj 2709 painter 题目要求 给定涂料,每套涂料含有3-12种不同的颜色(开始时候给定选用的颜料套的颜色数目),且一套涂料中每种颜色均有50ml.且一套涂料中的任意三种不同的颜色各X m ...

  7. Docker源码分析(八):Docker Container网络(下)

    1.Docker Client配置容器网络模式 Docker目前支持4种网络模式,分别是bridge.host.container.none,Docker开发者可以根据自己的需求来确定最适合自己应用场 ...

  8. Jboss AS 7 部署web应用程序时无法初始化spring的bean的解决办法

    Jboss AS 7 在部署web应用程序的时候无法初始化spring的bean(在tomcat下边不会出现这个问题) 原因是web应用程序没有导入jboss对spring的支持的jar包 解决方法: ...

  9. JSP 通过Session和Cookie实现网站自动登录

    点记住密码 login.jsp String host = request.getServerName(); Cookie cookie = new Cookie("SESSION_LOGI ...

  10. Web界面的服务器监测工具(转载)

    企业服务器对于企业业务持续性意义重大,系统管理员需要密切关注企业服务器以确保一切正常运行.当发现问题的时候,他们需要知道问题开始出现时的状况,因此调查可以重点放在问题出现的时候,这就意味着定期记录信息 ...