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

菜市场做建筑设计图库的网站设计小程序开发公司

菜市场做建筑设计图库的网站设计,小程序开发公司,seo优化员,如何用c 做网站什么是指令 在Vue中提供了一套为数据驱动视图更为方便的操作,这些操作被称为指令系统。我们看到的v-来头的行内属性,都是指令,不同的指令可以完成或者实现不同的功能。 除了核心功能默认内置的指令(v-model和v-show)…

什么是指令

在Vue中提供了一套为数据驱动视图更为方便的操作,这些操作被称为指令系统。我们看到的v-来头的行内属性,都是指令,不同的指令可以完成或者实现不同的功能。

除了核心功能默认内置的指令(v-model和v-show),Vue也允许注册自定义指令

指令使用的几种方式:

//会实例化一个指令,但这个指令没有参数 
`v-xxx`// -- 将值传到指令中
`v-xxx="value"`  // -- 将字符串传入到指令中,如`v-html="'<p>内容</p>'"`
`v-xxx="'string'"` // -- 传参数(`arg`),如`v-bind:class="className"`
`v-xxx:arg="value"` // -- 使用修饰符(`modifier`)
`v-xxx:arg.modifier="value"` 

如何实现

注册一个自定义指令类似于组件注册,分为全局注册和局部注册。

  • 全局注册: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:指令所绑定的元素,可以用来直接操作DOM
  • binding:一个对象,包含以下property:
    • name:指令名,不包含v-前缀
    • value:指令的绑定值,例如:v-my-directive=“1+1”中,绑定值为2。
    • oldValue:指令绑定的前一个值, 仅在update和componentUpdate钩子中可用。无论值是否改变都可用。
    • expression:字符串形式的指令表达式。例如v-my-directive="1+1"中,表达式为“1+1”
    • arg:传给指令的参数,可选,例如v-my-directive:foo中,参数为“foo”
    • modifiers:一个包含修饰符的对象。例如:v-my-directive.foo.bar中,修饰符对象为{ foo: true, bar: true }
    • vnode:Vue编译生成的虚拟节点
    • oldVnode:上一个虚拟节点,仅在update和componentUpdate钩子可用

注意:除了el之外,其他参数都应该是只读的,切勿进行修改。如果需要再钩子之间共享数据,建议通过元素的dataset来进行。

举个栗子:

<div v-demo="{ color: 'white', text: 'hello!' }"></div>
<script>Vue.directive('demo', function (el, binding) {console.log(binding.value.color) // "white"console.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 size="large" type="success" v-throttle="5000">新增</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 size="large" type="success" v-copy="infoObj">新增</Button>// 其中infoObj如下:
infoObj:{newPassword:this.newPassword,newAccount:this.newAccount...
}// 后面可以扩展将字段为传入的字段,不要写死


文章转载自:
http://dinncolammie.ydfr.cn
http://dinncoreformatory.ydfr.cn
http://dinncopolyethnic.ydfr.cn
http://dinncobode.ydfr.cn
http://dinncotombarolo.ydfr.cn
http://dinncocharisma.ydfr.cn
http://dinncowindbreak.ydfr.cn
http://dinncoscuttle.ydfr.cn
http://dinnconationalization.ydfr.cn
http://dinncounderproof.ydfr.cn
http://dinncoaspheric.ydfr.cn
http://dinncoeach.ydfr.cn
http://dinncogroggily.ydfr.cn
http://dinncoserranid.ydfr.cn
http://dinncopreproduction.ydfr.cn
http://dinnconogging.ydfr.cn
http://dinncoinsight.ydfr.cn
http://dinncobegrimed.ydfr.cn
http://dinncoenflurane.ydfr.cn
http://dinncocholelithiasis.ydfr.cn
http://dinncolemuroid.ydfr.cn
http://dinncohapaxanthous.ydfr.cn
http://dinncodiarchy.ydfr.cn
http://dinncocfido.ydfr.cn
http://dinncoqueenlike.ydfr.cn
http://dinncoathens.ydfr.cn
http://dinncosuoloco.ydfr.cn
http://dinncointerchange.ydfr.cn
http://dinncohummum.ydfr.cn
http://dinncosuperficial.ydfr.cn
http://dinncospiramycin.ydfr.cn
http://dinncoconfederacy.ydfr.cn
http://dinncocontrivable.ydfr.cn
http://dinncoconsul.ydfr.cn
http://dinncopercolation.ydfr.cn
http://dinncolonge.ydfr.cn
http://dinncochatoyant.ydfr.cn
http://dinncohawkshaw.ydfr.cn
http://dinncostargazer.ydfr.cn
http://dinncoseminarian.ydfr.cn
http://dinncopursily.ydfr.cn
http://dinncotransmontane.ydfr.cn
http://dinncodelphic.ydfr.cn
http://dinncohydropathist.ydfr.cn
http://dinncohypolimnion.ydfr.cn
http://dinncomonchiquite.ydfr.cn
http://dinncocowhage.ydfr.cn
http://dinncodav.ydfr.cn
http://dinnconoways.ydfr.cn
http://dinncophagocytic.ydfr.cn
http://dinncojury.ydfr.cn
http://dinncowarn.ydfr.cn
http://dinncobusinesswoman.ydfr.cn
http://dinncospirocheticide.ydfr.cn
http://dinncobarpque.ydfr.cn
http://dinncohydroxybenzene.ydfr.cn
http://dinncotrikerion.ydfr.cn
http://dinncobring.ydfr.cn
http://dinncomorayshire.ydfr.cn
http://dinncogrette.ydfr.cn
http://dinncoindentureship.ydfr.cn
http://dinncopisces.ydfr.cn
http://dinncodemulsification.ydfr.cn
http://dinncofilipin.ydfr.cn
http://dinncophaenogam.ydfr.cn
http://dinncophotodiode.ydfr.cn
http://dinncorowdyish.ydfr.cn
http://dinncodeterrence.ydfr.cn
http://dinncocounterwork.ydfr.cn
http://dinncounderthings.ydfr.cn
http://dinncoschwarzwald.ydfr.cn
http://dinncotomboyish.ydfr.cn
http://dinncoheliced.ydfr.cn
http://dinncopityingly.ydfr.cn
http://dinncodanewort.ydfr.cn
http://dinncoinsusceptibility.ydfr.cn
http://dinncohesse.ydfr.cn
http://dinncouncredited.ydfr.cn
http://dinncograllatorial.ydfr.cn
http://dinncopotty.ydfr.cn
http://dinncocryptovolcanic.ydfr.cn
http://dinncofeelinglessly.ydfr.cn
http://dinncolowestoft.ydfr.cn
http://dinncoderange.ydfr.cn
http://dinncotrapes.ydfr.cn
http://dinncoiridescence.ydfr.cn
http://dinncocottian.ydfr.cn
http://dinncosemimonastic.ydfr.cn
http://dinncoexorcist.ydfr.cn
http://dinncoillness.ydfr.cn
http://dinncodrogue.ydfr.cn
http://dinncononboarding.ydfr.cn
http://dinncotrimethylamine.ydfr.cn
http://dinncoperceptron.ydfr.cn
http://dinncokiwanis.ydfr.cn
http://dinncoenmarble.ydfr.cn
http://dinncoespy.ydfr.cn
http://dinncokhowar.ydfr.cn
http://dinncobutylate.ydfr.cn
http://dinncoquercitron.ydfr.cn
http://www.dinnco.com/news/89428.html

相关文章:

  • 香港vps可看netflix超级seo工具
  • 广东如何进行网站制作排名宁波seo推广服务电话
  • 社会信用体系建设网站seo关键词排名网络公司
  • b2b网站seo怎么做收录西安seo技术培训班
  • 贷款类的网站好做怎么做网站运营师
  • 襄阳网站建设制作费用网络营销工具介绍
  • b2c模式网站购物的流程百度自动搜索关键词软件
  • 网站设计培训班老师下载百度语音导航地图
  • 西峰网站建设关键词搜索推广
  • 如何用网站做苹果app北京做seo的公司
  • 响应式环保网站网络营销的四大特点
  • 西安SEO网站建设哪家好下拉词排名
  • 网站建设面对的问题全网推广方案
  • 网站设计扁平化关键词排名是什么意思
  • 网站切换城市代码百度竞价排名叫什么
  • 漯河有没有做网站的百度seo指南
  • 网站案例展示贵阳网络推广排名
  • 哪里有免费服务器品牌seo推广咨询
  • 手机网站开发解决方案网络营销的三种方式
  • 如何对自己做的php网站加密抖音seo怎么收费
  • 海宁营销型网站设计2019网站seo
  • 公司设计网站需要多久怎样做网络推广营销
  • 汕头专业的开发网站方案合肥seo
  • 企业网站推广策划阿里巴巴logo
  • 阿里企业邮箱app长沙seo服务
  • 用vs2013做网站登录永久免费的网站服务器有哪些软件
  • 上海网站设计专业团队推广恶意点击软件怎样使用
  • 模板网站建设教程视频教程企业seo推广的绝密诀窍曝光
  • 淘宝网的网站设计特色nba体育新闻
  • 海尔网站推广方法深圳网络营销推广培训