在此之前,子组件到父组件的传递事件我一般还是使用 $emit 和 $on,因为这个操作理解起来并不难,代码一般也挺清晰。
不过今天遇到这么个情况 ——
<div class="button-group">
<button @click="item.reply = !item.reply">
{{item.reply?'取消回复':'回复'}}
</button>
<button @click="item.editing = !item.editing">
{{item.editing?'取消修改':'修改'}}
</button>
<button @click="removeComment(item.id)">删除</button>
</div>
<CommentInput
v-if="item.reply"
@submit="item.reply = false"
:lxid="lxid"
:parentId="item.id"
/>
这是一个评论组件的一部分,button-group 是回复、修改、删除 3 个按钮,点击回复的话下面的 CommentInput 组件会显示。本来想着在那里操作就在哪里取消,但是写完了,产品大人一看,表示不行,按钮不能在上面,应该统一放在评论内容和输入框的下方,不妥协。
心想又要加 $emit 和 $on 虽然麻烦,但不是难事,不过 CommentInput 本来还会复用到其他地方,只有这里需要“取消回复”功能,这又要做一层判断,为了代码简洁这个实现还要好好想想。结果灵感就来了 —— 使用 slot。
<div class="button-group">
<button @click="replyToggle(item)">回复</button>
<button
v-if="loginInfo.operatorname === item.authorName"
@click="editToggle(item)"
>
{{item.editing?'取消修改':'修改'}}
</button>
<button
v-if="loginInfo.operatorname === item.authorName"
@click="removeComment(item.id)"
>
删除
</button>
</div>
<CommentInput
v-if="item.reply"
@submit="item.reply = false"
:lxid="lxid"
:parentId="parentId||item.id"
>
<div class="button-group">
<button @click="replyToggle(item)">取消回复</button>
</div>
</CommentInput>
slot 本身还是很常用的,只是第一次主动意识到使用 slot 可以显著解决事件传递问题。直接把取消回复按钮用 slot 嵌入 CommentInput,直接使用父组件的 replyToggle 方法,免去重新写 $emit 和 $on 的麻烦,顺便还解决了其他地方不需要“取消回复”的问题,十分有效!
其实感觉 slot 就像一个闭包,带上了父组件的一切,栖身于子组件。
Vue 2.6.0 新增了 Vue.observable api,但最近才去尝试使用它。这东西说新也不新,因为他就是 vue 本身的功能,只是暴露出来,成为新 api 了。在老版本中,直接用 new Vue({ data: {} }) 也一样。
props 把数据传给子组件!prop是组件数据的一个字段,期望从父作用域传下来。子组件需要显式地用 props 选项。props的大小写、静态的和动态的 Prop、传入一个数字、传入一个布尔值、Vue的组件中的props属性单向数据流
现在网站大多有三方登录,支付等功能,存在#,项目开发就存在很大的障碍。vue把#当做自己的根目录,静态资源,去掉#后,要采用相对路径去引用,如果图片引用是在js内,则要采用require()方法进行引用。
嗨,说起探探想必各位程序汪都不陌生(毕竟妹子很多),能在上面丝滑的翻牌子,探探的的堆叠滑动组件起到了关键的作用,下面就来看看如何用vue写一个探探的堆叠组件
熟悉 React 的开发者应该对“受控组件”的概念并不陌生,实际上对于任何组件化开发框架而言,都可以实现所谓的受控与非受控,Vue 当然也不例外。并且理解受控与非受控对应的需求场景,可以让我们在设计一些基础组件时思路更加清晰,暴露出来的组件 API 也更加合理、统一。
Vue无法检测property的添加或移除,由于Vue会在初始化实例时对property执行getter/setter转换,所以propterty必须在data对象上存在才能让Vue将它转换为响应式的。例如
主要讲Vue三种方式调用组件:v-model或者.sync显式控制组件显示隐藏,通过js代码调用,通过Vue指令调用,在写组件的时候很多写法、灵感来自于element-ui
使用Vue-cli脚手架开发单页应用时出现页面空白的情况:1.npm run build打包页面空白,2. iOS的Safari下无法打开网页,3.升级vue2+部分手机访问出现页面空白,4.升级vue2+IP访问页面空白,5.Vue在IE下显示空白问题,6.Vue只在iOS 10出现白屏问题
从一个从未接触过除HTML+CSS+JavaScript+JQuery以外的前端技术的人到现在可以独立使用Vue.js以及各种附属的UI库来开发项目,我总结了一些知识和经验想与大家分享。
Vue-Access-Control是一套基于Vue/Vue-Router/axios 实现的前端用户权限控制解决方案,通过对路由、视图、请求三个层面的控制,使开发者可以实现任意颗粒度的用户权限控制。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!