【学习打卡】第11天 Vue Element+Node.js开发企业通用管理后台系统(第17章)
2022/8/13 4:23:02
本文主要是介绍【学习打卡】第11天 Vue Element+Node.js开发企业通用管理后台系统(第17章),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:Vue Element+Node.js开发企业通用管理后台系统(第17章)
课程章节: 第17章 Vue进阶(下)
主讲老师:Sam
课程内容:
今天学习的内容包括:
- Vue进阶(下)
课程收获:
- 组件通信 provide 和 inject
provide 和 inject 是一起使用的。以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。在进行组件通信的时候,如果层级很深的情况就可以使用 provide 和 inject 。
<html> <head> <title>组件通信 provide 和 inject</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="root"> <Test></Test> </div> <script> function registerPlugin() { Vue.component('Test', { template: '<div>{{message}}<Test2 /></div>', provide() { return { elTest: this } }, // function 的用途是为了获取运行时环境,否则 this 将指向 window data() { return { message: 'message from Test' } }, methods: { change(component) { this.message = 'message from ' + component } } }) Vue.component('Test2', { template: '<Test3 />' }) Vue.component('Test3', { template: '<button @click="changeMessage">change</button>', inject: ['elTest'], methods: { changeMessage() { this.elTest.change(this.$options._componentTag) } } }) } Vue.use(registerPlugin) new Vue({ el: '#root' }) </script> </body> </html>
2.过滤器 filter
过滤器是对即将显示的数据做进一步的筛选处理,vue2 中提供一些过滤器,也可以使用 Vue.filter 定义全局过滤器,vue3 中废除了过滤器。
<html> <head> <title>过滤器 filter</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="root"> {{message | lower}} </div> <script> new Vue({ el: '#root', filters: { lower(value) { return value.toLowerCase() } }, data() { return { message: 'Hello Vue' } } }) </script> </body> </html>
- 监听器 watch
watch 可以监听某个数据是否发了改变,如果该数据发生了改变 就会执行相应的操作。在使用的时候容易混淆的还有计算属性 computed,二者的区别在于,watch 是属性监听,监听属性的变化,而 computed 是计算属性,是通过属性计算而得到的属性。
<html> <head> <title>监听器 watch</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="root"> <h3>Watch 用法1:常见用法</h3> <input v-model="message"> <span>{{copyMessage}}</span> </div> <div id="root2"> <h3>Watch 用法2:绑定方法</h3> <input v-model="message"> <span>{{copyMessage}}</span> </div> <div id="root3"> <h3>Watch 用法3:deep + handler</h3> <input v-model="deepMessage.a.b"> <span>{{copyMessage}}</span> </div> <div id="root4"> <h3>Watch 用法4:immediate</h3> <input v-model="message"> <span>{{copyMessage}}</span> </div> <div id="root5"> <h3>Watch 用法5:绑定多个 handler</h3> <input v-model="message"> <span>{{copyMessage}}</span> </div> <div id="root6"> <h3>Watch 用法6:监听对象属性</h3> <input v-model="deepMessage.a.b"> <span>{{copyMessage}}</span> </div> <script> new Vue({ el: '#root', watch: { message(value) { this.copyMessage = value } }, data() { return { message: 'Hello Vue', copyMessage: '' } } }) new Vue({ el: '#root2', watch: { message: 'handleMessage' }, data() { return { message: 'Hello Vue', copyMessage: '' } }, methods: { handleMessage(value) { this.copyMessage = value } } }) new Vue({ el: '#root3', watch: { deepMessage: { handler: 'handleDeepMessage', deep: true } }, data() { return { deepMessage: { a: { b: 'Deep Message' } }, copyMessage: '' } }, methods: { handleDeepMessage(value) { this.copyMessage = value.a.b } } }) new Vue({ el: '#root4', watch: { message: { handler: 'handleMessage', immediate: true, } }, data() { return { message: 'Hello Vue', copyMessage: '' } }, methods: { handleMessage(value) { this.copyMessage = value } } }), new Vue({ el: '#root5', watch: { message: [{ handler: 'handleMessage', }, 'handleMessage2', function(value) { this.copyMessage = this.copyMessage + '...' }] }, data() { return { message: 'Hello Vue', copyMessage: '' } }, methods: { handleMessage(value) { this.copyMessage = value }, handleMessage2(value) { this.copyMessage = this.copyMessage + '*' } } }) new Vue({ el: '#root6', watch: { 'deepMessage.a.b': 'handleMessage' }, data() { return { deepMessage: { a: { b: 'Hello Vue' } }, copyMessage: '' } }, methods: { handleMessage(value) { this.copyMessage = value } } }) </script> </body> </html>
最后,附上课程截图 ending~
这篇关于【学习打卡】第11天 Vue Element+Node.js开发企业通用管理后台系统(第17章)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程