`

Vue的技术细节总结

    博客分类:
  • Vue
 
阅读更多

Vue的版本是^2.6.10

vue-router的版本是^3.0.3

vue-/cli-service的版本是^3.8.0

 

1.

cli创建的默认工程,route对应的component option里面,使用了字符串template, 访问时会报如下错误:

[Vue warn]: You are using the runtime-only build of Vue where the template option is not available. Either pre-compile the templates into render functions, or use the compiler-included build.

 

要修复这个问题,要在vue.config.js里面,添加 runtimeCompiler: true选项。而不是网上说的在webpack.config.js里面配置alias。这个webpack的配置对我生成的项目不起作用。

 

2. 

axios请求本地的mock json,需要把mock文件放在public目录下。比如:

public 

    ---- mock

             ---- list.json

 

src

    ---- components

             ---- MyComponent.vue

 

MyComponent的axios的请求要如下写

axios.get('../../mock/list.json')

 

因为public目录里面存放了不需要修改的静态文件,可以被直接访问。

网上写的放在根目录下的static目录中的方法不起作用。

 

3. 

Debug vue的代码,如果是默认设置,并且浏览器开启了map选项,那么可以在代码里写上

    debugger

浏览器就会在这个命令处停止,然后就可以看到源文件进行debug了。

 

4

用Store模式使用数据时,数组要注意

 

Store:

 

export default {
  isDebug: true,
  /*
   Define the type of {} object to avoid below TS compile error.

   Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{}'.
   No index signature with a parameter of type 'string' was found on type '{}'.

   */
  state: {
    dataList: [],
  } as { [key: string]: any },

  setDataList(newDataList: any[]) {
    if (this.isDebug) {
      console.info('setDataList was called');
      console.info('new dataList is ' + JSON.stringify(newDataList));
    }
    this.state.dataList = newDataList;
  },
  ...
};
 

 

Component

<template>
    <div>

        <div v-for="data in dataList">{{data.desc}}</div>
    </div>
</template> 

@Component
  export default class DataComponent {

       _dataList = null;

       sharedStore = Store;

       public get dataList () {
            return this.sharedStore.state.dataList;
       }
  
       methodToSetNewDataList(){
            this.sharedStore.setDataList([...]);
       }
  }

 

 使用computed property的方式,让dataList属性实际上是直接使用Store中的数组。这样,当store的数组被设置成新的数组时,component就可以监听到变化。

 

如果是使用下面这种赋值的方式,Store中的数组被设置成新的数组后,component是无法监听到变化的。

我觉得这个是由于Store中的dataList和component的dataList指向了同一个数组。Store的dataList被设置成新数组了, 只会触发Store的dataList属性的变化。而component的dataList属性引用的仍旧是旧数组,实际没有变化/触发变化。

 

@Component
  export default class DataComponent {

       dataList = null;

       sharedStore = Store;

       created(){
           this.dataList = this.sharedStore.state.dataList;
       }

  }

 

5.

Component的$root对象指向的是根Vue应用。

Component的$parent对象指向的是component所属的父Component。


分享到:
评论

相关推荐

    vue基本内容总结学习

    ### Vue.js 基本内容总结学习 #### 一、组件之间的通信 ##### 1.1 父子组件之间的通信 在 Vue.js 中,父子组件间的通信是最常见的模式之...希望这些内容能够帮助读者更好地理解和掌握 Vue.js 的核心概念和技术细节。

    vue写h5页面的方法总结

    在当今Web开发领域,Vue.js已成为构建单页应用...当然,以上的总结和分析仅为参考,实际开发中可能会遇到更多细节问题,需要开发者灵活应对。希望这些方法能够帮助到正在学习或者需要使用Vue.js编写H5页面的开发者们。

    基于Vue的图像融合系统

    总结,"基于Vue的图像融合系统"项目结合了Vue.js的强大功能和图像处理技术,提供了一个用户友好的前端界面,实现了图像融合操作。开发者通过Vue组件化设计,可以灵活地组织和复用代码,同时利用JavaScript和...

    vue初步学习ppt

    ### Vue.js基础知识与核心特性详解 #### Vue.js简介 Vue.js 是一款专为构建交互式 Web 界面而设计的轻量级 ...通过深入理解 Vue 的核心概念和技术细节,开发者可以更加得心应手地构建高质量的 Web 应用程序。

    Vue 面试训练营总结文档

    在面试中,掌握Vue的核心概念和技术细节是至关重要的。以下是对给定面试问题的详细解答: 1. **v-if 和 v-for 的优先级**:v-for 优先级高于 v-if。当它们同时存在时,v-for 会先被执行,这可能导致不必要的计算和...

    Vue 讲义.pdf

    ### Vue 讲义知识点梳理 #### 一、Vue 概述 ...通过上述知识点的学习,开发者不仅可以快速上手Vue,还能深入理解其核心概念和技术细节。无论是初学者还是有一定经验的开发者,都能够从中获得有价值的信息。

    vue2.0 项目实战,包含源码,免费赠送

    此新闻客户端项目是基于Vue 2.0构建的一个完整案例,旨在通过实践让开发者深入了解Vue 2.0的核心功能和应用场景,并通过具体的项目实施过程,掌握前端项目从需求分析到上线的一系列流程和技术细节。 #### 二、项目...

    Vue 2.6官方帮助文档

    不过,由于OCR扫描技术的原因,文档的某些部分可能出现了识别错误,因此在阅读时,可能需要自行理解并修正这些部分,以确保内容的连贯性。 以上所述的知识点是根据文件信息推测的,由于没有提供具体的PDF文档内容,...

    Springboot+VUE Web开发实践.pdf

    总结来说,SpringBoot+Vue的开发实践涉及到Spring框架的简化企业级应用开发,Vue.js的高效前端构建,以及两者之间的API交互。通过理解和掌握这些知识点,开发者可以构建出高性能、易于维护的Web应用。

    塔可商城, 一个基于springboot+uniapp+vue3技术栈开发的开源跨平台小程序、管理后台,后端服务的项.zip

    总结来说,塔可商城项目利用现代Web技术栈,实现了从后端服务到前端展示的全面覆盖,为开发者提供了可复用、可扩展的开源电商解决方案。对于学习和实践这些技术的开发者而言,这是一个宝贵的资源,有助于提升技能并...

    vue-signalr-test.zip

    总结起来,Vue-SignalR-Test项目是一个教学示例,它演示了如何结合Vue.js的响应式UI特性和SignalR的实时通信能力,实现前后端分离的应用中实时数据交换。这对于开发需要实时更新的Web应用,如聊天室、股票报价或在线...

    vue仿美团外卖微信小程序

    通过阅读和分析这些源代码,学习者可以深入了解Vue和微信小程序的集成方法,学习如何处理数据流、如何实现组件通信、如何调用微信小程序的API进行后端接口调用等技术细节。 此外,对于资源分享达人计划的参与者来说...

    基于Vite+Vue3+TS+Nuxt3的仿爱彼迎网站源码.zip

    下面,我们将深入探讨该项目中涉及的关键技术点和实现细节。 一、Vite:下一代前端构建工具 Vite是由Vue.js作者尤雨溪开发的一款新型构建工具,它打破了传统的Webpack模式,采用了ES模块的即时热更新,大大提升了...

    vue之封装自己的树组件视频

    在整个过程中,我们不仅实现了基本的功能需求,还深入探讨了Vue组件的原理和技术细节。对于想要进一步提升Vue技能的开发者来说,这无疑是一次宝贵的学习经历。未来还可以根据项目的实际需求对这个组件进行扩展和完善...

    nginx-1.18.0已开启gzip压缩优化vue项目大小.zip

    在现代Web开发中,优化前端项目以提高加载速度和用户体验是至关重要的。在这个场景中,我们看到一个关于“nginx-1.18.0已开启...通过了解这些技术细节,开发者可以更好地优化自己的Web应用,使其在性能上达到最佳状态。

    毕业论文ssm459基于vue技术的绿色蔬菜销售管理系统+vue论文.doc

    本篇毕业论文主要围绕基于Vue技术的绿色蔬菜销售管理系统进行研究,该系统采用现代技术和工具来提升蔬菜销售行业的管理效率。以下是对论文中涉及的关键知识点的详细说明: 1. **SSM框架**:SSM是Spring、Spring MVC...

    用VUE构建Electron的骨架

    总结来说,“用Vue构建Electron的骨架”涉及到的关键知识点包括Vue.js的组件化开发、Vue CLI的使用、Electron的基础架构、主进程与渲染进程的交互、以及热更新配置。通过这样的组合,开发者可以充分利用Vue的灵活性...

    trufflevue这是一个基于vue的solidity开发Dapp框架

    Truffle Vue是一个强大的框架,专为使用...通过这个框架,开发者可以更专注于业务逻辑,而不是底层技术细节,从而提高开发效率和产品质量。如果你正计划开发一个以太坊DApp,Truffle Vue无疑是一个值得考虑的优秀选择。

    安装配置nodejs并创建Vue项目.pdf

    每个步骤中包含的命令、操作细节和注意事项都是掌握这些技术点的关键。通过本文件提供的内容,读者可以顺利进行Node.js环境的搭建以及基于webpack的Vue项目初始化和运行,为后续的Web开发工作打下坚实的基础。

    基于springboot+vue技术的在线考试系统源码数据库.doc

    #### 四、系统实现技术细节 - **前端技术栈**:使用Vue.js作为前端开发框架,配合Element UI等UI库来实现丰富的用户界面交互。 - **后端技术栈**:SpringBoot为核心框架,提供RESTful API接口服务;同时利用MyBatis...

Global site tag (gtag.js) - Google Analytics