• vue组件基础之创建与使用


    一、创建组件

    <script src="vue.js"></script> <!--引入vue.js文件-->
    
    <div id="app">
        <Vheader></Vheader> //使用组件
    </div>
    <script>
        //创建组件
        Vue.component('Vheader', {
                //一定是函数
                data:function () {
                    return {} //必须要返回,就算是空对象
                },
                template:'<div class="header"><p>我是头部</p></div>'
            });
    
        var vm = new Vue({
            el:'#app', //目标区域
            data:{
    
            }
        })
    
    </script>

      组件是可复用的 Vue 实例,且带有一个名字:在这个例子中是 <Vheader>。我们可以在一个通过 new Vue 创建的 Vue 根实例中,把这个组件作为自定义元素来使用,如上面的代码所示。

    • 组件的复用

    组件可以进行任意次数的复用

    <div id="app">
        <Vheader></Vheader>
        <Vheader></Vheader>
        <Vheader></Vheader>
    </div>
    • data必须是一个函数,并且必须要有返回值

    一个组件的 data 选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝:

    data:function () {
                    return {} //必须要返回,就算是空对象
                },
    • 组件的注册

    为了能在模板中使用,这些组件必须先注册以便 Vue 能够识别,这样才能在根下进行使用, Vue.component 就是全局注册的,

    Vue.component('Vheader', {
               // ... options ...
            });

    全局注册的组件可以用在其被注册之后的任何 (通过 new Vue) 新创建的 Vue 根实例,也包括其组件树中的所有子组件的模板中。

    二、项目中使用组件

    (一)创建项目

    通过vue-cli创建项目,然后在其中创建项目并且使用组件。

     1、安装node.js

    自行去官网 https://nodejs.org/en/下载并且安装,安装完毕后:

    #在命令行工具中输入
    
    C:UsersAdministrator>node -v
    v10.14.2
    
    C:UsersAdministrator>npm -v
    6.4.1

    如果出现对应的版本号,说明安装成功。

    2、全局安装vue-cli

    npm install --global vue-cli  /  cnpm install --global vue-cli         #(npm相当于python中的pip工具,此命令只需要执行一次)

    安装完毕后,命令行输入:

    C:UsersAdministrator>vue -V        #这里的vue只是一个工具,用于快速创建项目            
    2.9.6

    此时已经完成vue-cli工具的安装,vue-cli工具是一个用于快速创建项目的工具

    3、vue-cli的使用

    在命令行中查看帮助信息

    C:UsersAdministrator>vue --help
    Usage: vue <command> [options]
    
    Options:
      -V, --version  output the version number
      -h, --help     output usage information
    
    Commands:
      init           generate a new project from a template
      list           list available official templates
      build          prototype a new project
      create         (for v3 warning only)
      help [cmd]     display help for [cmd]

    此时可以根据提示查看可以使用的模板

    C:UsersAdministrator>vue list
    
      Available official templates:
    
      ★  browserify - A full-featured Browserify + vueify setup with hot-reload, li
    nting & unit testing.
      ★  browserify-simple - A simple Browserify + vueify setup for quick prototypi
    ng.
      ★  pwa - PWA template for vue-cli based on the webpack template
      ★  simple - The simplest possible Vue setup in a single HTML file
      ★  webpack - A full-featured Webpack + vue-loader setup with hot reload, lint
    ing, testing & css extraction.
      ★  webpack-simple - A simple Webpack + vue-loader setup for quick prototyping
    .

    之前使用的一直是simple 简单的模板,此时可以使用webpack-simple模板创建项目:

    • 切换你需要建立项目的目录下
    C:UsersAdministrator>e:
    
    E:>cd E:vueProject
    • 初始化项目
    E:vueProject>vue init webpack-simple webpackProject
    webpack-simple表示需要使用的模板,webpackProject表示项目的名称
    E:vueProject>vue init webpack-simple webpackProject
    
    ? Project name wptest  #不能含有大写的字母
    ? Project description A Vue.js project
    ? Author bright <bright@live.com>
    ? License MIT
    ? Use sass? No #需要选择No
    初始化注意事项
    • 按照提示进行安装
      vue-cli · Generated "webpackProject".
    
      To get started:
    
        cd webpackProject
        npm install
        npm run dev

    此时就完成了一个项目的创建。

    #在npm install 发现下载的太慢,时长卡住,这时考虑使用淘宝镜像
    
    #安装cnpm
    E:vueProjectwebpackProject>npm install -g cnpm --registry=https://registry.npm
    .taobao.org
    
    #使用
    E:vueProjectwebpackProject>cnpm install
    cnpm install

    (二)创建组件

    在生成的项目中,主要关心的是src文件夹中的内容:

    这个项目的入口文件是main.js文件,这里主要是加载App.vue的内容。

    import Vue from 'vue' //导入模块
    import App from './App.vue'  // 一个.vue就是一个组件
    
    new Vue({
      el: '#app',
      render: h => h(App) //加载组件
    });

    在App.vue组件中又引入了新的组件,这里先看看引入的三个组件:

    在Vheader.vue组件中:

    <template>
    //注意标签不能并列,只能是包裹的,也就是说其余的标签必须放在下面div中,不能再有其它与其并列的标签 <div class="header"> <p>我是头部</p> </div> </template> <script> export default { name: "Vheader", data:function () { return {} }, methods:{ //在当前组件内调用 }, computed:{ //在在当前组件内调用 } } </script> <style scoped> /*设置scoped,只对当前组件样式起作用*/ </style>

    其它组件的创建与其类似,而将其引入到App.vue中分为三步:

    • 引入组件
    • 挂载组件
    • 使用组件
    <!--一个组件有三部分组成-->
    
    <template>
      <!--页面结构-->
      <div id="app">
        <!--使用组件-->
        <Vheader></Vheader>
        <Vcontent></Vcontent>
        <Vfooter></Vfooter>
    
      </div>
    </template>
    
    <script>
      // 导入组件
      import Vheader from './components/Vheader.vue'
      import Vcontent from './components/Vcontent.vue'
      import Vfooter from './components/Vfooter.vue'
    // 页面业务逻辑 export default { name: 'app', data () { return { msg: 'Welcome to Your Vue.js App' } }, // 挂载组件 components:{ Vheader:Vheader, Vcontent:Vcontent, Vfooter:Vfooter } } </script> <style> /*页面样式*/ </style>

    这样就完成组件的创建以及使用了。

  • 相关阅读:
    Eclipse 快捷键大全
    js字符串变量赋值的时候,一行写不下,想在下一行继续写
    java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.TextUtils
    JS调用iframe父窗口元素和子窗口元素的方法
    no JMagick in java.library.path
    数据库建立索引的原则
    Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
    软件项目管理心得
    Errors running builder JavaScript Validator的问题
    21. Session Management
  • 原文地址:https://www.cnblogs.com/shenjianping/p/11221416.html
Copyright © 2020-2023  润新知