第一步:cmd进入项目文件里,运行npm run serve 启动项目 这里说明启动端口号是8080
第二步:往页面输入:localhost:8081
先看整体框架样式和index.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title><%= htmlWebpackPlugin.options.title %></title> </head> <body> <noscript> <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> </body> </html>
从上面我们可以看出,index的body中只有一个id为app的div,那是如何被渲染的呢。一步一步寻找
第一步:main.js
main.js是我们的入口文件,主要作用是初始化vue实例并使用需要的插件。
import Vue from 'vue' import App from './App.vue' import router from './router' import store from './store' Vue.config.productionTip = false new Vue({ el: '#app', i18n,//挂载i18n router, store, components: { App }, template: '<App/>' })
这里new Vue代表新建vue对象
el官方解释:为实例提供挂载元素。值可以是 CSS 选择符,或实际 HTML 元素,或返回 HTML 元素的函数。
这里就通过index.html中的<div id="app"><div>中的id=“app”和这里的“#app”进行挂载。
components:代表组件。这里是'App',这说明。首先页面肯定有<app></app>这样的标签,同时有个组建为‘App.Vue‘文件
这个地方我思考好久,才明白,首先App.vue是有的,因为上面已经import导入了,但index.html中并没有<app></App>标签
template:代表模板。官方解释:模板将会替换挂载的元素。挂载元素的内容都将被忽略。
也就是说:template: '<App/>'
表示用<app></app>
替换index.html
里面的<div id="app"></div>
第二步:App.vue
首先一个正常的vue结尾的文件里,一般包含三部分:<template>,<script>,<style>
<template> <div id="app"> <router-view></router-view> </div> </template> <style> @import "../static/css/main.css"; @import "../static/css/theme-green/color-green.css"; /* @import '../static/css/theme-green/index.css'; */ </style>
这里面的<img>标签,就代表页面的vue的logo,它下面又有一个组件<HellWord>
我们只要在进入到HellWord.vue中明白了。
第三步:HellWord.vue
这样一来,页面所渲染的东西都找到了,其实并不复杂,只是在main.js稍微绕了个弯。
自己也是一边学一边写,有错的地方或者有更好的解释也希望大家予以指点。
- CERT_HAS_EXPIRED错误如何解决(2493)
- Js异步async、await关键字详细介绍(lambda表达式中使用async和await关键字)(2342)
- Vue 2.x + Element后台模板开发教程(三)后台首页模板设计(1242)
- vuex中 this.$store.dispatch() 与 this.$store.commit()方法的区别(1209)
- Error: Cannot find module ‘chokidar‘ 解决方法(1084)
- vuejs中如何使用axios调用后台接口(1052)
- Vue 2.x + Element后台模板开发教程(一)(1045)
- Vue后台开发实例教程(二)Title修改及左侧菜单修改(995)
- vue.js初探(一)vue.js全家桶介绍(848)
- vue.js初探(三)vue页面结构(844)
- 2025年3月 (1)
- 2024年6月 (2)
- 2024年5月 (2)
- 2024年4月 (4)
- 2024年3月 (30)
- 2024年1月 (4)
- 2023年12月 (2)
- 2023年11月 (4)
- 2023年10月 (4)
- 2023年9月 (6)
- 2023年3月 (2)
- 2023年2月 (1)
- 2023年1月 (1)
- 2022年12月 (1)
- 2022年9月 (21)
- 2022年8月 (10)
- 2022年7月 (3)
- 2022年4月 (1)
- 2022年3月 (13)
- 2021年8月 (1)
- 2021年3月 (1)
- 2020年12月 (42)
- 2020年11月 (7)
- 2020年10月 (5)
- 2020年8月 (1)
- 2020年6月 (1)
- 2020年3月 (2)
- 2019年12月 (8)
- 2019年11月 (3)
- 2019年9月 (1)
- 2019年4月 (1)
- 2019年3月 (6)
- 2019年2月 (1)
- 2018年7月 (7)
- 1.asp.net mvc内微信pc端、H5、JsApi支付方式总结(5751)
- 2.Windows 10休眠文件更改存储位置(3400)
- 3.各大搜索网站网站收录提交入口地址(3319)
- 4.ECharts仪表盘实例及参数使用详解(3218)
- 5.windows 10安装myeclipse 10破解补丁cracker.jar、run.bat闪退解决办法(3155)
- 6.HTML5 WebSocket与C#建立Socket连接实现代码(3015)
- 7.华为鸿蒙系统清除微信浏览器缓存方法(2926)
- 8.CERT_HAS_EXPIRED错误如何解决(2493)
- 9.Js异步async、await关键字详细介绍(lambda表达式中使用async和await关键字)(2342)
- 10.HBuilder编辑器格式化代码(2240)