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

网站网页设计引言小程序ui设计

网站网页设计引言,小程序ui设计,做网站有哪些需求,网站开发技术一般需要什么语言一、自定义指令 1、自己封装指令 什么是指令?指令本质上就是DOM功能的一种抽象封装。 如果有一些DOM功能经常用,但是Vue没有提供相关指令,建议自己封装。 2、自定义全局指令 使用Vue.directive(指令名, function() {})定义全局指令。 3、…

一、自定义指令

1、自己封装指令
什么是指令?指令本质上就是DOM功能的一种抽象封装。

如果有一些DOM功能经常用,但是Vue没有提供相关指令,建议自己封装。

2、自定义全局指令
使用Vue.directive('指令名', function() {})定义全局指令。

3、自定义局部指令
使用directives: {}定义局部指令,只能在当前组件中使用。

(1)使用function写法

directives: {// function写法'color': function(el, binding, vnode) {console.log('---el', el) // 指令所对应的DOM节点console.log('---binding', binding) // 绑定的值/表达式console.log('---vnode', vnode) // 当前的虚拟DOMel.style.color = binding.value}
}

接收3个参数:
el:指令所对应的DOM节点
binding:绑定的值/表达式
vnode:当前的虚拟DOM

(2)使用对象写法

directives: {// function写法'color': function(el, binding, vnode) {console.log('---el', el) // 指令所对应的DOM节点console.log('---binding', binding) // 绑定的值/表达式console.log('---vnode', vnode) // 当前的虚拟DOMel.style.color = binding.value},// 对象写法'color2': {bind(el, binding) { // 绑定cc变量的时候el.style.color = binding.value},update(el, binding) { // 修改cc变量的时候el.style.color = binding.value}}
}

还有其它的钩子。

注:function写法,等价于bind + update这两个。

二、例子代码

自己封装一个指令v-form,类似于v-model指令实现双向绑定。
必须要用虚拟DOM的上下文实现。

<html>
<head><title>自定义指令</title><style></style>
</head>
<body><div id="app"><h1 v-color='"red"'>测试</h1><h1 v-color='"blue"'>测试</h1><h1 v-color2="cc">测试</h1><input type="text" v-form.lazy="name" /></div><script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script><script>Vue.directive ('form', {bind(el, binding, vnode) {console.log('---el', el)console.log('---binding', binding)console.log('---vnode', vnode)// 解构赋值const { lazy } = binding.modifiers// v-bind:value// 指令在绑值的时候,改上下文中的值el.value = vnode.context[binding.expression]// v-on:input// 实现双向绑定el.addEventListener(lazy?'blur':'input', function(ev){console.log('---事件', ev.target.value)vnode.context[binding.expression] = ev.target.value})},update(el, binding, vnode) {// 实现双向绑定el.value = vnode.context[binding.expression]}})const app = new Vue({data() {return {cc: "green",name: '张三'}},directives: {// function写法'color': function(el, binding, vnode) {//console.log('---el', el) // 指令所对应的DOM节点//console.log('---binding', binding) // 绑定的值/表达式//console.log('---vnode', vnode) // 当前的虚拟DOMel.style.color = binding.value},// 对象写法'color2': {bind(el, binding) { // 绑定cc变量的时候el.style.color = binding.value},update(el, binding) { // 修改cc变量的时候el.style.color = binding.value}}}})app.$mount('#app')</script></body>
</html>

http://www.dtcms.com/a/476637.html

相关文章:

  • 工商局加强网站建设的通知广告设计与制作课程
  • 花桥做网站青岛网站开发建设
  • 免费网站后台做机械的有什么网站
  • 个人网站模板房地产网站制作公司
  • 个人网站备案要钱吗网站开通
  • 什么网站出项目找人做安卓app开发技术
  • 苏州seo网站系统个人备案的网站可以做商城
  • 本溪网站设计长安网站建设软件
  • 拍卖网站功能需求文档如何快速学会做网站
  • 建设网站的报告陕西建新建设有限公司网站
  • 成都网站建设司网站建设验收意见
  • h5可以用什么网站做什么平台可以免费推广产品
  • 建网站的域名是什么意思网页设计对板式的要求
  • 四川省建设厅网站证做外贸自己开公司网站
  • wordpress做管理网站网站如何建立数据库
  • 网站可兼容移动端3建网站
  • 网站怎么做来卖东西页面设计培训
  • 绵阳网站建设优化郑州制作网站ihanshi
  • 郑州网站建设找三牛电子商务专业就业方向 就业岗位有哪些
  • 做短租哪个网站肇庆建站模板源码
  • 铜陵网站开发搭建网站运行环境
  • 网站被k十大原因贸易公司寮步网站建设哪家好
  • 专门做家教的网站上海文化传媒有限公司
  • jsp商业网站开发英文网站建站山东
  • 烟台建站模板源码福州学做网站
  • 北湖区网站建设公司做兼职哪个网站比较好
  • 微信网站建设电话小白学编程应该从哪里开始学
  • 网站建设平台协议书江西省城乡建设培训中心网站
  • 个人建 行业 网站网络营销专业是干嘛的
  • 金富通青岛建设工程有限公司网站创造网站需要什么条件