• vue09


    目录

    一 、配置项props

    二、mixin(混入)

    三、插件


    一 、配置项props

    功能:让组件接收外部传过来的数据
    (1).传递数据: 
    <Demo name="xxx" />
    (2).接收数据: 

    • 第一种方式(只接收) :

    props:[' name' ]

    • 第二种方式(限制类型) :

    props:{
    name :String}

    • 第三种方式(限制类型、限制必要性、指定默认值) :

    props:{
    name:{
    type :String, //类型
    required:true, //必要性
    default:'老王'//默认值
    }

    备注: props是只读的,Vue底层会监测你对props的修改,如果进行了修改,就会发出警告,
    若业务需求确实需要修改,那么请复制props的内容到data中一份, 然后去修改data中
    的数据。
     

    二、mixin(混入)

    • 功能:可以把多个组件共用的配置提取成一个 混入对象
    • 使用方式:
    1. 第一步定义混合,例如:{
      data(){....},
      methods:{....}
      }
    2. 第二步使用混入,例如:(1).全局混入: Vue . mixin(xxx)
      (2).局部混入: mixins:['xx']

    1. 局部混合:
    2. mixin.js
    3. export const mix = {
    4. methods: {
    5. showName(){
    6. alert (this.name )
    7. }
    8. },
    9. mounted() {
    10. console.log('你好啊! ')
    11. },
    12. }
    13. export const mix2 = {
    14. data() {
    15. return {
    16. x:100,
    17. y:200
    18. }
    19. },
    20. }
    21. School.vue 
    22. <template>
    23. <div>
    24. <h2 @click=" showName">学校名称: {{name}}</h2>
    25. <h2>学校地址: {{address}}</h2>
    26. </div>
    27. </template>
    28. <script>
    29. //引入mix
    30. import {mix , mix2} from ' . ./mixin'
    31. export default{
    32. name : 'School'
    33. data() {
    34. return {
    35. name:'某某'
    36. address:'某某' ,
    37. //当data中的数据和method方法冲突时以它本身为主,但生命周期都要起作用
    38. x: 666
    39. }
    40. },
    41. mixins : [mix, mix2]
    42. mounted(){
    43. console.log('你好啊!!!!!')
    44. },
    45. }
    46. </script>

    1. 全局混合:
    2. main.js:
    3. //引入Vue
    4. import Vue from' vue
    5. //引入App
    6. import App from ' . /App.vue'
    7. import {mix, mix2} from ' ./mixin'
    8. //关闭Vue的生产提示
    9. Vue . config . productionTip = false
    10. //vc、vm都会运用
    11. Vue . mixin(mix )
    12. Vue .mixin(mix2)
    13.  
    14. //创建vm
    15. new Vue({
    16. el: ' #app',
    17. render: h =>
    18. h(App)
    19. })
    20. School.vue
    21. <template>
    22. <div>
    23. <h2 @click=" showName">学校名称: {{name}}</h2>
    24. <h2>学校地址: {{address}}</h2>
    25. </div>
    26. </template>
    27. <script>
    28.  
    29. export default{
    30. name : 'School',
    31. data() {
    32. return {
    33. name:'某某',
    34. address:'某某' ,
    35.  
    36. x: 666
    37. }
    38. },
    39.  
    40. mounted(){
    41. console.log('你好啊!!!!!')
    42. },
    43. }
    44. </script>


    三、插件

    • 功能:用于增强Vue
    • 本质:包含install方法的 个对象, install的第一个参 数是Vue, 第二个以后的参 数是插件使用者传递的数据。

    定义插件:

    1. 对象.install = function (Vue, options) {
    2. // 1.添加全局过滤器
    3. Vue . filter(....)
    4. // 2.添加全局指令
    5. Vue . directive(....)
    6. // 3.配置全局混入(合)
    7. Vue . mixin(....)
    8. // 4.添加实例方法(vc与vm均可使用)
    9. Vue . prototype . $myMethod = function () {...}
    10. Vue . prototype . $myProperty = xxxx
    11. }


    使用插件:main.js页面import引入,通过 Vue.use(插件名)使用

     
     

  • 相关阅读:
    centos 7.9同时安装JDK1.8和openjdk11两个版本
    Vue组件与Vue-cli脚手架安装
    09【享元设计模式】
    英国G5生物医学类专业IB成绩要求多高?
    2013年第四届丘成桐大学生数学竞赛获奖名单
    2.6、物理层-真题
    如何查找无物流信息单号
    攻防世界-WEB-fileinclude
    jeecg-boot中上传图片到华为云obs云存储中
    【多线程】读写锁ReentrantReadWriteLock源码分析
  • 原文地址:https://blog.csdn.net/m0_66506641/article/details/125552112