前言
这篇文章的代码片段位于 vue 的单文件组件中,即以 .vue 结尾的文件中,本文说明的只是一种实现方法,既不是唯一的方法也不是最好的方法,如果大家有更好的方法可以留言,大家进行讨论。
第一步
首先,一定要先定义变量:
// app.vue <script> data () { return { // 定义 getData getData:{}, // 定义自定义指令的绑定值 ifUpdate:true } }
第二步
然后要使用 ajax 的话,要在 index.html 里引入 jquery,这样就可以全局使用了:
// index.html <script type="text/javascript" src="/UploadFiles/2021-04-02/jquery-2.1.1.min.js">第三步
接着使用自定义指令,在组件实例化后,会自动执行自定义指令里的方法:
组件实例化后会立即以初始值
ifUpdate
为参数第一次调用自定义指令initData
的方法,之后每次参数值ifUpdate
变化时会再次调用initData
的函数,参数为ifUpdate
的新值与旧值。
// app.vue <template> // 在页面节点(自由选择)中绑定自定义指令 <div v-initData="ifUpdate" ></div>// app.vue <script> // 定义自定义指令 directives:{ initData:function(val, oldVal){ if(!val){ return; } var self = this; $.getJSON( "ajax/test.json", function( data ) { self.vm.getData = data; }); // 下次 ifUpdate 值更新为 true 时就会再次使用上面的 ajax 去获取数据 self.vm.ifUpdate = false; } }使用场景说明
用户评论后,刷新评论列表:
首次获取评论数据后,将
ifUpdate
改为false
用户添加评论后将数据传到后台,并将
ifUpdate
变为true
指令根据
ifUpdate
变化而触发,再次通过ajax
从后台拉取数据
拉取完再将
ifUpdate
重置为false
总结
以上就是这篇文章的全部内容,希望本文的内容对大家学习或者使用vue.js能有所帮助,如果有疑问大家可以留言交流。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。