zoukankan      html  css  js  c++  java
  • Vue -3:单文件组件

    在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页面内指定一个容器元素。

    这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的项目中,或者你的前端完全由 JavaScript 驱动的时候,下面这些缺点将变得非常明显:

    • 全局定义 (Global definitions) 强制要求每个 component 中的命名不得重复
    • 字符串模板 (String templates) 缺乏语法高亮,在 HTML 有多行的时候,需要用到丑陋的 
    • 不支持 CSS (No CSS support) 意味着当 HTML 和 JavaScript 组件化时,CSS 明显被遗漏
    • 没有构建步骤 (No build step) 限制只能使用 HTML 和 ES5 JavaScript, 而不能使用预处理器,如 Pug (formerly Jade) 和 Babel

    文件扩展名为 .vue 的 single-file components(单文件组件) 为以上所有问题提供了解决方法,并且还可以使用 webpack 或 Browserify 等构建工具。

    好了,以上是官方所哔哔的,下面我们直接学习如何使用Vue单文件组件:

    1、环境准备:

     上面的工具都安装完毕之后:

    2、通过vue ui 命令启动vue cli的图像化管理页面:

    注意,这里你再哪个路径下启动uve ui,你的项目就在那里创建

    启动完毕之后会自动打开下面的网页:

     接下来我们创建项目:

    此时在命令行我们可以看到项目的创建进度:

    等待一会之后我们的项目就创建完毕了,我们可以去D盘下去查看我们的项目:

     

    并且图像化管理界面会有所提示:

    此时我们就可以关闭cmd窗口和图像化管理界面了;

    3、将我们的项目导入开发工具,项目结构如下:

     注意,我这里使用的编辑器是WebStrom,可能其他孩儿们使用的是其他五花八门的开发工具,这里我只介绍如何使用webStrom运行Vue项目并拓展补充Hbuilder X运行Vue项目的方法:

    a、WebStrom:

     

     配置完成之后启动项目:

    项目启动完成浏览器访问:

     b、Hbulider X:

     如果你不傻,通过自己分析项目结构和HelloWorld.vue以及App.vue中的代码,你应该大体知道,HelloWorld.vue其实就是一个单文件组件,App.vue引入了HelloWorld.vue并显示出来了。。。

    4、自己创建单文件组件测试:

     

     在test.vue添加我们的代码:

    <template>
        <div id="testdiv">
        <h2>{{testMsg}}</h2>
        </div>
    </template>
    
    <script>
        export default {
            name: "test",
            props:{//为组件注册属性
                testMsg:{//规范写法
                    type:String,
                    default:"测试字符串默认值"
                }
            },
            methods:{//为组件注册方法
    
            },
            data:function () {//为组件注册数据
                return{
    
                }
            }
        }
    </script>
    
    <style scoped>
    #testdiv{
        color: red;
    }
    </style>

    在App.vue文件引入我们自定义的test单文件组件:

    <template>
      <div id="app">
        <img alt="Vue logo" src="./assets/logo.png">
        <test test-msg="我是测试字符串"></test>
        <HelloWorld msg="Welcome to Your Vue.js App"/>
      </div>
    </template>
    
    <script>
    import HelloWorld from './components/HelloWorld.vue'
    import test from './components/test'
    export default {
      name: 'app',
      components: {
        HelloWorld,
        test
      }
    }
    </script>
    
    <style>
    #app {
      font-family: 'Avenir', Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    </style>

    最后重启Vue项目:

     至此单文件组件的创建和使用基本内容已经演示完毕,谢谢孩儿们观看!!!

  • 相关阅读:
    在mybatis中调用存储过程的时候,不能加工语句
    mybatis sql注入
    关于mybatis缓存配置讲解
    execution(* com.sample.service.impl..*.*(..))
    mybatis中if test 可以使用== != null '' and or 和括号()
    java中可以对时间进行加减处理,有时候不用在sql语句中处理
    【Guava】RateLimiter类
    maven编译报错 -source 1.5 中不支持 lambda 表达式
    easyui打开dialog后给弹出框内输入框赋值问题
    HttpClient 基于连接池的使用
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/11975671.html
Copyright © 2011-2022 走看看