热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:再探vue

1.vue项目搭建搭建vue环境需要安装node软件,node是由c++编写而成,主要运行js文件或者js代码的,安装node会

1. vue项目搭建

  搭建vue环境需要安装node软件,node是由c++编写而成,主要运行js文件或者js代码的,安装node会自动安装一个管理器叫npm,建议换源下载,国外的网站较慢(比如cnpm,这个叫淘宝源),最后下载vue

  1. 下载node

  官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/

技术图片

  2. 换源安装cnpm

   npm install -g cnpm --registry=https://registry.npm.taobao.org

  技术图片

  3. 安装脚手架

  cnpm install -g @vue/cli

技术图片 

  注:2或3终端安装失败时,可以清空 npm缓存 再重复执行失败的步骤
  npm cache clean --force

2. 创建项目

  1. 进入存放项目的目录

  cd 项目的路径

  2. 创建项目  vue create 项目名

  3. 项目初始化

技术图片

 

3. vue项目目录结构分析

  

├── v-proj
| ├── node_modules // 当前项目所有依赖,一般不可以移植给其他电脑环境
| ├── public
| | ├── favicon.ico // 标签图标
| | └── index.html // 当前项目唯一的页面
| ├── src
| | ├── assets // 静态资源img、css、js
| | ├── components // 小组件
| | ├── views // 页面组件
| | ├── App.vue // 根组件
| | ├── main.js // 全局脚本文件(项目的入口)
| | ├── router.js // 路由脚本文件(配置路由 url链接 与 页面组件的映射关系)
| | └── store.js // 仓库脚本文件(vuex插件的配置文件,数据仓库)
| ├── README.md
└ └── **配置文件

  

4. vue组件由哪几部分组成





1) template:有且只有一个根标签
2) script:必须将组件对象导出 export default {}
3) style: style标签明确scoped属性,代表该样式只在组件内部起作用(样式的组件化)

  

5. 全局脚本文件main.js(项目入口)


在node_moduls library root 模块中导入以下模块
import Vue from ‘vue‘
import App from ‘./App.vue‘
import router from ‘./router‘
import store from ‘./store‘
Vue.config.productiOnTip= false // 项目的一些新手提示
new Vue({
router,
store,
render: h => h(App)
}).$mount(‘#app‘) // 相当于挂载点
上面可改为:
import Vue from ‘vue‘ // 加载vue环境
import App from ‘./App.vue‘ // 加载根组件
import router from ‘./router‘ // 加载路由环境
import store from ‘./store‘ // 加载数据仓库环境
Vue.config.productiOnTip= false
new Vue({
el: ‘#app‘,
router,
store,
render: function (readFn) {
return readFn(App); // 将组件文件读成字符串形式,渲染挂载点
},
});

  

6. vue项目启动生命周期与页面组件的运用


请求过程
1) 加载mian.js启动项目
i) import Vue from ‘vue‘ 为项目加载vue环境
ii) import App from ‘./App.vue‘ 加载根组件用于渲染替换挂载点
iii) import router from ‘./router‘ 加载路由脚本文件,进入路由相关配置

2) 加载router.js文件,为项目提供路由服务,并加载已配置的路由(链接与页面组件的映射关系)
注:不管当前渲染的是什么路由,页面渲染的一定是根组件,链接匹配到的页面组件只是替换根组件中的
这个标签有vue.router进行提供, 比如我们走red这个路由, 自然而然的会拿出RegPage这个组件,他就会把PegPage这个组件替换成, 如果走blue这个路由, 他就会拿出BluePage这个组件来进行替换RedPage这个组件, 进而实现页面的跳转

3) 如果请求链接改变(路由改变),就会匹配新链接对应的页面组件,新页面组件会替换渲染router-view标签,替换掉之前的页面标签(就是完成了页面跳转)

  参与文件

  main.js: 该文件内容不变

  App.vue



  views/RedPage.vue




拓展: vm : 相对于视窗的宽度或高度, 取决于哪个更小

  views/BluePage.vue





  router.js

import Vue from ‘vue‘
import Router from ‘vue-router‘
import Home from ‘./views/Home.vue‘
import RedPage from "./views/RedPage";
import BluePage from "./views/BluePage";
Vue.use(Router);
export default new Router({
mode: ‘history‘,
base: process.env.BASE_URL,
routes: [
{
path: ‘/‘,
name: ‘home‘,
component: Home
},
{
path: ‘/red‘,
name: ‘red‘,
component: RedPage
},
{
path: ‘/blue‘,
name: ‘blue‘,
component: BluePage
}
]
})

  

7.全局样式文件配置

  assets/css/global.css

html, body, h1, h2, ul, p {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
a {
color: black;
text-decoration: none;
}
// list-style属性是设置list-style-type, list-style-image 和 list-style-position的简写属性

  main.js中新增

// 配置全局样式
import ‘@/assets/css/global.css‘

  

8. 封装小组件==> Nav导航栏组件

  components/Nav.vue





  views/HomePage.vue: RedPage.vue与BluePage都是添加下方三个步骤代码




  

新增页面三步骤

1. 在views文件夹中创建视图组件
2. 在router.js文件中配置路由
3. 设置路由跳转,在指定路由下渲染该组件(替换根组件中的router-view标签)

  views/ TanPage.vue





  router.js

import TanPage from "./views/TanPage";
export default new Router({
mode: ‘history‘,
base: process.env.BASE_URL,
routes: [
// ...
{
path: ‘/tan‘,
name: ‘tan‘,
component: TanPage
}
]
})

  components/Nav.vue


  • 土页


  •   

    9. 组件生命周期钩子


    1)一个组件从创建到销毁的整个过程,就称之为组件的生命周期
    2)在组件创建到销毁的过程中,会出现众多关键的时间节点,如 组件要创建了、组件创建完毕了、组件数据渲染完毕了、组件要被销毁了、组件销毁完毕了 等等时间节点,每一个时间节点,vue都为其提供了一个回调函数(在该组件到达该时间节点时,就会触发对应的回调函数,在函数中就可以完成该节点需要完成的业务逻辑)
    3)生命周期钩子函数就是 vue实例 成员

      任何一个组件: 在vue组件的script的export default 导出字典中直接写钩子函数

    export default {
    // ...
    beforeCreate() {
    console.log(‘组件创建了,但数据和方法还未提供‘);
    // console.log(this.$data);
    // console.log(this.$options.methods);
    console.log(this.title);
    console.log(this.alterTitle);
    },
    // 该钩子需要掌握,一般该组件请求后台的数据,都是在该钩子中完成
    // 1)请求来的数据可以给页面变量进行赋值
    // 2)该节点还只停留在虚拟DOM范畴,如果数据还需要做二次修改再渲染到页面,
    // 可以在beforeMount、mounted钩子中添加逻辑处理
    created() {
    console.log(‘组件创建了,数据和方法已提供‘);
    // console.log(this.$data);
    // console.log(this.$options.methods);
    console.log(this.title);
    console.log(this.alterTitle);
    console.log(this.$options.name);
    },
    destroyed() {
    console.log(‘组件销毁完毕‘)
    }
    }

      

    10. 根据请求路径高亮路由标签案例


    1) router-link会被解析为a标签,用to完成指定路径跳转,但是不能添加系统事件(因为是组件标签)
    2) 在js方法中可以用 this.$router.push(‘路径‘) 完成逻辑跳转
    3) 在js方法中可以用 this.$route.path 拿到当前请求的页面路由

      components/Nav.vue





      

     


    推荐阅读
    • 如何高效地压缩JavaScript代码以提升网页性能
      本篇内容介绍了“javascript如何压缩”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处 ... [详细]
    • 【前端开发】深入探讨 RequireJS 与性能优化策略
      随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
    • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
    • 在CSS中处理单行文本长度限制的问题时,可以通过设置文本颜色、定义块级元素等方法来实现。具体而言,通过使用 `color: #000;` 来控制文字颜色,并将元素定义为块级元素(`display: block;`),可以有效管理文本的显示效果。此外,还可以结合其他CSS属性,如 `overflow: hidden;` 和 `text-overflow: ellipsis;`,以确保超出部分的文字被优雅地隐藏或截断,从而提升用户体验。 ... [详细]
    • 在CentOS上部署和配置FreeSWITCH
      在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
    • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
      结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
    • 本文介绍了如何通过掌握 IScroll 技巧来实现流畅的上拉加载和下拉刷新功能。首先,需要按正确的顺序引入相关文件:1. Zepto;2. iScroll.js;3. scroll-probe.js。此外,还提供了完整的代码示例,可在 GitHub 仓库中查看。通过这些步骤,开发者可以轻松实现高效、流畅的滚动效果,提升用户体验。 ... [详细]
    • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
    • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
    • 深入解析Tomcat:开发者的实用指南
      深入解析Tomcat:开发者的实用指南 ... [详细]
    • 题目描述:小K不幸被LL邪教洗脑,洗脑程度之深使他决定彻底脱离这个邪教。在最终离开前,他计划再进行一次亚瑟王游戏。作为最后一战,他希望这次游戏能够尽善尽美。众所周知,亚瑟王游戏的结果很大程度上取决于运气,但通过合理的策略和算法优化,可以提高获胜的概率。本文将详细解析洛谷P3239 [HNOI2015] 亚瑟王问题,并提供具体的算法实现方法,帮助读者更好地理解和应用相关技术。 ... [详细]
    • 本文将深入探讨MySQL与MongoDB在游戏账户服务中的应用特点及优劣。通过对比这两种数据库的性能、扩展性和数据一致性,结合实际案例,帮助开发者更好地选择适合游戏账户服务的数据库方案。同时,文章还将介绍如何利用Erlang语言进行高效的游戏服务器开发,提升系统的稳定性和并发处理能力。 ... [详细]
    • Node.js 中 fs.linkSync() 方法的深入解析与应用 ... [详细]
    • 如何在MAC上配置Python和Appium开发环境
      一、需要安装的软件二、下载安装步骤2.1、安装jdk2.1.1JDK下载地址:https:www.oracle.comjavatechnologiesjavase-download ... [详细]
    • 深入解析Gradle中的Project核心组件
      在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
    author-avatar
    S_o_m_n_u_211
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有