Vue의 전환

6194 단어

非单文件组件



非单文件组件的사용


  • 创建组件

  •   const school = Vue.extend({
        //定义组件时不使用el,因为所有的组件都将使用vm管理
        template:`
            <div></div>
        `,
        data(){
            return{
                  schoolname:'atguigu',
                  address:'beijing'
            }
        },
        methods(){
    
        }
      })
    



  • data写成函数 --- 避免组件复用时,数据存在引用关系
  • 注册组件



  • 局部注册组件

    //创建vm
    new Vue({
        //决定组件放在哪个容器下
        el:'#root'
        //注册组件
        components:{
            school
        }
    })
    




  • 全局注册组件

    vue.component('school',school)
    

  • 用用组件


  •   <school></school>
    


    의미:



  • 组件的命名
  • 一个单词的组件命名

  • 首字母大写:School(推荐写法)
  • 全小写:학교
  • 多个单词的组件命名

  • 首字母大写(kebab-case命名):MySchool(推荐写法)
  • 两个单词之间使用 - 连接(Camelcase命名):my-school
  • 可以에서 定义组件时使用name配置项指定组件에서 开发者工具中呈现的名字



  • 组件标签的写法

  • --- 自闭合写法

  • 不使用脚手架时, 会导致后续组件无法渲染

  • 组件注册简写

  •   const school = Vue.extend({...})
      简写为:
      const school = {...}
    


    组件的嵌套


  • vm中只管理app一个组件

  •   new vue({
        el:'#root',
        components:{
            app
        }
      })
    


  • app内包含其他组件

  •   const app = Vue.extend({
        components:{
            school,
            student
        }
    
      })
    


    VueComponent


  • 학교에서 실행하는 VueComponent의 실행, Vue.extend 생성
  • 我们只需写组件标签,Vue解析时会帮助创建school组件的实例对象,即Vue帮助执行:new VueComponent(options)
  • Vue.extend의 ​​새로운 기능인 VueComponent의 새로운 기능

  • 이것은:
  • 组件配置中: data函数,methods中的函数,watch中的函数,computed中的函数,他们的this都是VueComponent的实例对象
  • new Vue(options)配置中:
  • data函数,methods中的函数,watch中的函数,computed中的函数,他们的this都是Vue的对象

  • VueComponent 또는 VueComponent는 vc

  • Vue의 가상 머신은 VM

    组件的内置关系



    vm에는 모든 vc가 있습니다.

    单文件组件



    App.vue



    App.vue为入口文件, 通过App.vue来管理所有组件

    需要在App.vue中,引入,注册,使用组件

    <template>
        <div>
            <School></School>
            <Student></Student>
    </template>
    <script>
        //引入组件
        import School from "./School";
        impotr Student from "./Student";
        //控制组件的交互
        export default {
            name:'App',
            //注册组件
            components: {
                School,
                Student
            }
        }
    </script>
    <style></style>
    


    main.js



    通过main.js管理App.vue

    需要引入, 注册, 使用 App.vue , 使用el指定容器

    import App from "./App.vue"
    
    new Vue({
        el: '#root',
    })
    


    index.html



    index.html에서 中创建容器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <div id="root"></div>
    </body>
    <script type="text/javascript" src="../js/vue.js"></script>
    <script type="text/javascript" src="./main.js"></script>
    </html>
    

    좋은 웹페이지 즐겨찾기