热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue:代码小记

1.事件派发:子控件-父控件

1.事件派发:子控件->父控件

DOCTYPE html>
<html><head><meta charset&#61;"UTF-8"><title>title>head><body><div id&#61;"app"><div>message : {{ message | json }}div><input type&#61;"hidden" v-model&#61;"message | json" /><child-component>child-component>div><template id&#61;"child-component"><input type&#61;"text" v-model&#61;"msg" /><button &#64;click&#61;"notify">添加事件button>template>body><script src&#61;"jquery.js">script><script src&#61;"vue.js">script><script>var app &#61; new Vue({el:"#app",data:{message:[]},components:{&#39;child-component&#39;:{template:&#39;#child-component&#39;,data:function(){return {msg:&#39;&#39;}},methods:{notify:function(){if($.trim(this.msg)){// 派发事件this.$dispatch(&#39;child-msg&#39;, this.msg, 222);this.msg &#61; &#39;&#39;;}} }}},// 事件
events:{&#39;child-msg&#39;:function(msg, data2){this.message.push(msg);console.log(this.message);console.log(data2);}}});script>
html>

View Code

2.事件广播&#xff1a;父控件->子控件

DOCTYPE html>
<html><head><meta charset&#61;"UTF-8"><title>title>head><body><div id&#61;"app"><input type&#61;"text" v-model&#61;"msg" /><child-component>child-component><button &#64;click&#61;"notify">广播事件button>div><template id&#61;"child-component"><ul><li v-for&#61;"item in messages">录入内容&#xff1a;{{ item }}li>ul>template>body><script src&#61;"jquery.js">script><script src&#61;"vue.js">script><script>// 注册组件
Vue.component(&#39;child-component&#39;, {template:&#39;#child-component&#39;,data:function(){return {messages:[]}},events:{&#39;parent-msg&#39;:function(msg, data2){console.log(data2);this.messages.push(msg);}}});var app &#61; new Vue({el:&#39;#app&#39;,data:{msg:&#39;&#39;},methods:{notify:function(){if($.trim(this.msg)){// console.log(this.msg);// 广播this.$broadcast(&#39;parent-msg&#39;, this.msg, 333);this.msg &#61; &#39;&#39;;}}}});script>
html>

View Code

3.ajax

ajax-helper.js

function AjaxHelper() {this.ajax &#61; function(url, type, dataType, data, callback) {$.ajax({url: url,type: type,dataType: dataType,data: data,success: callback,error: function(xhr, errorType, error) {// alert(&#39;Ajax request error, errorType: &#39; &#43; errorType &#43; &#39;, error: &#39; &#43; error)console.log(&#39;Ajax request error, errorType: &#39; &#43; errorType &#43; &#39;, error: &#39; &#43; error);}})}
}
AjaxHelper.prototype.get &#61; function(url, data, callback) {this.ajax(url, &#39;GET&#39;, &#39;json&#39;, data, callback)
}
AjaxHelper.prototype.post &#61; function(url, data, callback) {this.ajax(url, &#39;POST&#39;, &#39;json&#39;, data, callback)
}AjaxHelper.prototype.put &#61; function(url, data, callback) {this.ajax(url, &#39;PUT&#39;, &#39;json&#39;, data, callback)
}AjaxHelper.prototype.delete &#61; function(url, data, callback) {this.ajax(url, &#39;DELETE&#39;, &#39;json&#39;, data, callback)
}AjaxHelper.prototype.jsonp &#61; function(url, data, callback) {this.ajax(url, &#39;GET&#39;, &#39;jsonp&#39;, data, callback)
}AjaxHelper.prototype.constructor &#61; AjaxHelper

View Code

server.php

php$op &#61; $_REQUEST;if(empty($op)){$op &#61; &#39;people&#39;;
}
else{$op &#61; $_REQUEST[&#39;op&#39;];
}
$data &#61; array();if($op &#61;&#61; &#39;people&#39;){$people &#61; array(array(&#39;name&#39;&#61;>&#39;keenleung&#39;, &#39;age&#39;&#61;>25),array(&#39;name&#39;&#61;>&#39;keenleung2&#39;, &#39;age&#39;&#61;>26),);$data &#61; $people;
}
echo json_encode(array(&#39;status&#39; &#61;> &#39;success&#39;,&#39;data&#39; &#61;> $data
));

View Code

html

DOCTYPE html>
<html><head><meta charset&#61;"UTF-8"><title>title><style>template, simple-table{display: none;}style>head><body><div id&#61;"app"><simple-table>simple-table>div><template id&#61;"simple-table"><table><tr><th>姓名th><th>年龄th>tr><tr v-for&#61;"row in rows"><td>{{ row.name }}td><td>{{ row.age }}td>tr>table>template>body><script src&#61;"jquery.js">script><script src&#61;"vue.js">script><script src&#61;"ajax-helper.js">script><script>var ajaxHelper &#61; new AjaxHelper();var app &#61; new Vue({el:&#39;#app&#39;,components:{&#39;simple-table&#39;:{template:&#39;#simple-table&#39;,data:function(){return {rows:[],// 本地服务器
url:&#39;http://www.mysites.com/vue/server.php&#39;,}},methods:{getRows:function(){var vm &#61; this;callback &#61; function(data){// console.log(data);// 设置值
vm.$set(&#39;rows&#39;, data.data);// 获取值
console.log(vm.$get(&#39;rows&#39;));}ajaxHelper.get(vm.url, null, callback);}},// 执行方法
ready:function(){this.getRows();}}}});script>
html>

View Code

 

 

 



推荐阅读
  • 本文介绍了解决IE678伪类不兼容问题的方法,包括少用CSS3和HTML5独有的属性,使用CSS hacker,使用last-child清除浮动、批量添加标签、去掉list item最后一个的border-right等技巧。同时还介绍了使用after清除浮动时加上IE独有属性zoom:1的处理方法。另外,本文还提到可以使用jQuery代替批量添加标签的功能,以及使用负边距和CSS2选择器element+element去掉list item最后一个的border-right的方法。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • PHPMailer邮件类邮件发送功能的使用教学及注意事项
    本文介绍了使用国外开源码PHPMailer邮件类实现邮件发送功能的简单教学,同时提供了一些注意事项。文章涵盖了字符集设置、发送HTML格式邮件、群发邮件以及避免类的重定义等方面的内容。此外,还提供了一些与PHP相关的资源和服务,如传奇手游游戏源码下载、vscode字体调整、数据恢复、Ubuntu实验环境搭建、北京爬虫市场、进阶PHP和SEO人员需注意的内容。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路
    本文介绍了FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路。当图表系列较多时,用户希望可以自己设置哪些系列显示,哪些系列不显示。通过调用FR.Chart.WebUtils.getChart("chartID").getChartWithIndex(chartIndex).setSeriesVisible()接口,可以获取需要显示的系列图表对象,并在表单中显示这些系列。本文以决策报表为例,详细介绍了实现方法,并给出了示例。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 在JavaScript中,函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最后一个有效。如果调用函数时传入的参数个数与函数定义时的参数个数不符,会出现不同的情况。函数调用时,传入的参数个数少于函数定义时的参数个数,未传入的参数会被当做undefined处理,可能会导致错误。而传入的参数个数多于函数定义时的参数个数,多余的参数不会被使用,但不会报错。 ... [详细]
author-avatar
临海小少年
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有