当前位置: 首页 > news >正文

导航网站开发网站开发建

导航网站开发,网站开发建,如果在网站做推广连接,潜江网页什么是指令 在Vue中提供了一套为数据驱动视图更为方便的操作#xff0c;这些操作被称为指令系统。我们看到的v-来头的行内属性#xff0c;都是指令#xff0c;不同的指令可以完成或者实现不同的功能。 除了核心功能默认内置的指令#xff08;v-model和v-show#xff09;…什么是指令 在Vue中提供了一套为数据驱动视图更为方便的操作这些操作被称为指令系统。我们看到的v-来头的行内属性都是指令不同的指令可以完成或者实现不同的功能。 除了核心功能默认内置的指令v-model和v-showVue也允许注册自定义指令 指令使用的几种方式 //会实例化一个指令但这个指令没有参数 v-xxx// -- 将值传到指令中 v-xxxvalue // -- 将字符串传入到指令中如v-htmlp内容/p v-xxxstring // -- 传参数arg如v-bind:classclassName v-xxx:argvalue // -- 使用修饰符modifier v-xxx:arg.modifiervalue 如何实现 注册一个自定义指令类似于组件注册分为全局注册和局部注册。 全局注册Vue.directive局部注册组件directives属性 举例如下 Vue.directive第一个参数是指令的名字不需要加上v-前缀第二个参数可以是一个对象也可以是一个指令函数 Vue.directive(focus,{inserted:function(el){// 聚焦元素el.focus();//页面加载完成之后自动让输入框获取到焦点的小功能} }) 局部注册通过在组件options选项中设置directive属性 directive:{// 指令的定义focus:{inserted:function(el){el.focus()}} } 然后可以在模板中任何元素上使用v-focus指令如下 input v-focus / 自定义指令也想组件一样存在钩子函数 bind只调用一次指令第一次绑定到元素时调用。这里可以进行一次性的初始化设置inserted被绑定的元素插入父节点时调用仅保证父节点存在但是不一定已经被插入到文档中update所有组件VNode更新时调用但是可能发生在其子VNode更新之前。指令的值可能发生了改变也可能没有。这里你可以通过比较更新前后的值来忽略不必要的模板更新componentUpdate指令所在组件的VNode及其子VNode全部更新后调用unbind只调用一次指令与元素解绑时调用 所有钩子函数的参数都有以下 el指令所绑定的元素可以用来直接操作DOMbinding一个对象包含以下property name指令名不包含v-前缀value指令的绑定值例如v-my-directive“11”中绑定值为2。oldValue指令绑定的前一个值 仅在update和componentUpdate钩子中可用。无论值是否改变都可用。expression字符串形式的指令表达式。例如v-my-directive11中表达式为“11”arg传给指令的参数可选例如v-my-directive:foo中参数为“foo”modifiers一个包含修饰符的对象。例如v-my-directive.foo.bar中修饰符对象为{ foo: true, bar: true }vnodeVue编译生成的虚拟节点oldVnode上一个虚拟节点仅在update和componentUpdate钩子可用 注意除了el之外其他参数都应该是只读的切勿进行修改。如果需要再钩子之间共享数据建议通过元素的dataset来进行。 举个栗子 div v-demo{ color: white, text: hello! }/div scriptVue.directive(demo, function (el, binding) {console.log(binding.value.color) // whiteconsole.log(binding.value.text) // hello!}) /script 应用场景 使用自定义指令可以满足我们的日常一些场景这里我列举几个我在项目中用到的自定义指令 表单防止重复提交一键copy的功能 防止表单重复提交 Vue.directive(throttle, {inserted(el, binding) {// 获取指令参数时间没有则默认赋值为2000let throttleTime parseInt(binding.value) || 2000el.addEventListener(click, () {// 第一次执行if (!el.disabled) {// 如果是第一次执行则表示可以进行点击操作el.disabled truesetTimeout(() {el.disabled false}, throttleTime)}})} })// 2.为button标签设置v-throttle自定义指令 Button sizelarge typesuccess v-throttle5000新增/Button 一键复制功能 // 一键复制自定义指令 Vue.directive(copy, {// 选取文本框内容// 执行浏览器复制命令// 复制命令会将当前选中的内容复制到剪切板中这里就是创建的input标签// Input要在正常的编辑状态下原生复制方法才会生效inserted (el, binding) {if (!binding.value) {Message.error(请传入需要复制的内容)return}el.addEventListener(click, () {console.log(binding.value, binding.value) // 模拟输入框let cInput document.createElement(input)if (binding.value.newAccount ) {cInput.value 密码 binding.value.newPassword} else {cInput.value 企业名称${binding.value.newCompanyName} , 用户名${binding.value.newWebAccount} , 密码${binding.value.newPassword};}document.body.appendChild(cInput);cInput.select();document.execCommand(copy);Message.success(复制成功)document.body.removeChild(cInput);this.dialogVisible false;// 这个根据自己业务自定义Vue.prototype.$emit(afterComfirm);})},componentUpdated(el, { value }) {el.$value value;}, })// 为button标签设置v-copy自定义指令 Button sizelarge typesuccess v-copyinfoObj新增/Button// 其中infoObj如下 infoObj:{newPassword:this.newPassword,newAccount:this.newAccount... }// 后面可以扩展将字段为传入的字段不要写死
http://www.hkea.cn/news/14577241/

相关文章:

  • 上海市住房和城乡建设部网站网站正在建设中模板单页
  • 变更icp备案网站信息北京市家装公司排行榜
  • 安徽省建设干校学校网站宣传片制作公司价格
  • 上海网站外包建设免费网址大全免费观看
  • 深圳专业做网站的公司wordpress 批量漏洞
  • 赤峰网站开发公司最简单的cms网站怎么做
  • 学网站开发看什么书我的世界皮肤做壁纸的网站
  • 安徽网站推广优化提升学历最快的方法
  • 如何做网站产品经理天津建站服务
  • 网站改版要多少钱网站源代码怎么下载
  • 沈阳网站建设联系方式德州宁津网站建设
  • 大学网站建设的目标做网站经常加班还是app
  • 西安户县建设厅网站智能建站网站模板
  • 手机网站导航设计唐山网站制作企业
  • 建设电子网站试卷太阳宫网站建设
  • joomla网站模板wordpress 用户主页
  • 做兼职的网站都有哪些工作钢结构
  • 做网站数据库要建什么表c 网站开发入门视频
  • 怎么做离线网站义乌进货网
  • 郑州哪家公司做网站好大连中国建筑装饰网
  • 10个网站 云主机需求.net 网站开发视频教程
  • 苏州网站优化公司怎么添加网站后台
  • 珠海中企网站建设网站关键词分析
  • 泰州网站建设哪家好wordpress引用php文件
  • 闲鱼怎么做钓鱼网站建设摩托车官网中国官网报价大全
  • 网站建站公司有必要做吗网站结构布局
  • 如何做英文网站黑龙江省住房和城乡建设厅
  • 简述电子政务系统网站建设的基本过程电商网站建设题库
  • 淘宝上网站开发做什么网站比较简单
  • 海口网站开发公司新媒体网站建设方案