关于单文件组件.vue的使用


Posted in Javascript onSeptember 20, 2018

vuejs 自定义了一种.vue文件,可以把html, css, js 写到一个文件中,从而实现了对一个组件的封装, 一个.vue 文件就是一个单独的组件。由于.vue文件是自定义的,浏览器不认识,所以需要对该文件进行解析。 在webpack构建中,需要安装vue-loader 对.vue文件进行解析。在 sumlime 编辑器中,我们 书写.vue 文件,可以安装vue syntax highlight 插件,增加对文件的支持。

环境搭建完毕,利用vue-router实现了页面跳转,那么现在要处理的就是页面的内容了。

一个页面可以看作是由各种各样的组件组成的,大至一个页面,小至一个按钮都可以作为一个组件,页面的组件化可以大大提高代码的重用性,免除了很多重复性的劳动。vue允许把用户组件写成单个的文件,尾缀为.vue,然后再以模块的方式引入,下面是我的例子:

入口文件:

import Vue from 'vue';
import VueRouter from 'vue-router'
 
import Main from'./components/main.vue'
import Login from'./components/login.vue'
import Content from'./components/content.vue'
Vue.use(VueRouter);
 
const routes=[
  {path:'/login',component:Login},
  {path:'/main',component:Main},
  {path:'/main/content',component:Content},
  {path:'/',redirect:'/login'}
];
const router=new VueRouter({
    routes
  });
var app=new Vue({
  router,
  el:'#app',
  template:'<router-view></router-view>'
});

这是其中的一个组件content:

<template>
  <p class="demo-title">{{msg}}</p>
</template>
<script>
  export default{
    data:function(){
      return{msg:"hello"}
    }
  }
</script>
<style>
  .demo-title{color:red;}
</style>

这里用上了ES6的模块加载功能:export和import,在组件中使用export,可以把组件定义为一个模块,import则可以把已定义的组件,这样就能方便处理模块间的依赖关系。

一个vue文件一般来说有三个元素:template(html模板),script,style,我们在script中编写组件所需要的依赖和交互代码,并用export将整个组件以模块的方式定义。在script中,组件的编写方法与在vue对象中的编写组件的方法并无二致,所以也可以把template写进script里面。

一个组件对应一个文件,这样子就可以在组件内部处理组件自身的内容,css也可以只针对组件生效,十分方便。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用 JScript 创建 .exe 或 .dll 文件的方法
Jul 13 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
Mar 01 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
Aug 17 Javascript
谈谈jQuery Ajax用法详解
Nov 27 Javascript
详解JavaScript正则表达式之RegExp对象
Dec 13 Javascript
jQuery对象的链式操作用法分析
May 10 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
Jun 08 Javascript
H5图片压缩与上传实例
Apr 21 Javascript
Javascript es7中比较实用的两个方法示例
Jul 21 Javascript
js单线程的本质 Event Loop解析
Oct 29 Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
Aug 04 Javascript
vue-cli 打包使用history模式的后端配置实例
Sep 20 #Javascript
jQuery pjax 应用简单示例
Sep 20 #jQuery
微信小程序scroll-view横向滑动嵌套for循环的示例代码
Sep 20 #Javascript
Vuejs+vue-router打包+Nginx配置的实例
Sep 20 #Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 #Javascript
vue-cli项目无法用本机IP访问的解决方法
Sep 20 #Javascript
vue项目中,main.js,App.vue,index.html的调用方法
Sep 20 #Javascript
You might like
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
python列表与元组详解实例
2013/11/01 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python实现顺序表的简单代码
2018/09/28 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
一套Delphi的笔试题二
2013/05/11 面试题
工作决心书
2014/03/11 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
意向书范本
2014/07/29 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
家庭贫困证明
2014/09/23 职场文书
高三生物教学反思
2016/02/22 职场文书
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫
windows系统搭建WEB服务器详细教程
2022/08/05 Servers
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技