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

vue基础篇09webpack基础(二)

09webpack基础(二)引入vue.jsnpm代码npminstallvue--save并且在入口js文件main.js中写入importVuefromvueconst

09 webpack基础(二)


引入vue.js

npm代码

npm install vue --save

并且在入口js文件 main.js中写入

import Vue from 'vue'const app = new Vue({el:'#app',data:{message:'msg'}
});

并相应的在index.html中写入

<div id&#61;"app">{{message}}
div>

最后执行

npm run build

打开index.html预览发现并没有效果&#xff0c;直接显示了


{{message}}

打开控制台发现出现了这样的错误

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

(found in )

大概意思是这个vue在运行时不能使用&#xff0c;那么我们就相应的换一个&#xff0c;在webpack.config.js中写入

resolve:{alias:{&#39;vue$&#39;:&#39;vue/dist/vue.esm.js&#39;}
}

再次执行

npm run build

index.html的预览就变成


msg

el和template区别


  • 正常运行之后&#xff0c;我们来考虑另外一个问题&#xff1a;

    • 如果我们希望将data中的数据显示在界面中&#xff0c;就必须是修改index.html

    • 如果我们后面自定义了组件&#xff0c;也必须修改index.html来使用组件

    • 但是html模板在之后的开发中&#xff0c;我并不希望手动的来频繁修改&#xff0c;是否可以做到呢&#xff1f;

  • 定义template属性&#xff1a;

    • 在前面的Vue实例中&#xff0c;我们定义了el属性&#xff0c;用于和index.html中的#app进行绑定&#xff0c;让Vue实例之后可以管理它其中的内容

    • 这里&#xff0c;我们可以将div元素中的{{message}}内容删掉&#xff0c;只保留一个基本的id为div的元素

    • 但是如果我依然希望在其中显示{{message}}的内容&#xff0c;应该怎么处理呢&#xff1f;

    • 我们可以再定义一个template属性&#xff0c;代码如下&#xff1a;

      main.js

      import Vue from &#39;vue&#39;const app &#61; new Vue({el:&#39;#app&#39;,template:&#96;

      {{message}}
      &#96;,data:{message:&#39;msg&#39;}
      });

      index.html

      <div id&#61;"app">div>

      效果与前面描述的一致


Vue组件化开发引入

和之前不用webpack一样&#xff0c;组件化开发的优势还是一样的&#xff0c;语法上也没有太大的改变

main.js

const cpm &#61; {template:&#96;

组件

&#96;
}const app &#61; new Vue({el:&#39;#app&#39;,template:&#96;
{{message}}
&#96;,data:{message:&#39;msg&#39;},components:{cpm}
});

.vue文件封装处理

用一个js包装一个组件依然不方便&#xff0c;比如css位置不知道应该放在哪里合适&#xff0c;这时候就引进一个新方式来组织一个vue组件,.vue

vueCpm.vue

main.js

import vueCpm from &#39;vue/vueCpm.vue&#39;
const app &#61; new Vue({el:&#39;#app&#39;,template:&#96;

{{message}}
&#96;,data:{message:&#39;msg&#39;},components:{cpm,vueCpm}
});

新的文件类型自然也需要新的loader


  • 安装vue-loader和vue-template-compiler

npm install vue-loader vue-template-compiler --save-dev

ps&#xff1a;需要css-loader


plugin

插件&#xff1a;通常是用于对某个现有的架构进行扩展&#xff0c;

webpack中的插件&#xff0c;就是对webpack现有功能的各种扩展&#xff0c;比如打包优化&#xff0c;文件压缩等等

这里就不仔细介绍了


搭载本地服务器

它是一个单独的模块&#xff0c;在webpack中使用之前需要先安装它&#xff0c;npm代码

npm install --save-dev webpack-dev-server&#64;2.9.1

需要在webpack.config.js添加devserver选项


  • contentBase&#xff1a;为哪一个文件夹提供本地服务&#xff0c;默认是根文件夹&#xff0c;我们这里要填写./dist
  • port&#xff1a;端口号
  • inline&#xff1a;页面实时刷新
  • historyApiFallback&#xff1a;在SPA页面中&#xff0c;依赖HTML5的history模式

package.json中可以配置另一个srcipts

"dev":"webpack-dev-server --open"

推荐阅读
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • Github上73个超棒且可提高生产力的 NPM 包,高赞!
    来自:掘金,作者:火狼1https:juejin.impost6854573212890562573前言JS是前端的核心,但 ... [详细]
  • 九宫格计算. ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 微信民众号商城/小顺序商城开源项目介绍及使用教程
    本文介绍了一个基于WeiPHP5.0开发的微信民众号商城/小顺序商城的开源项目,包括前端和后端的目录结构,以及所使用的技术栈。同时提供了项目的运行和打包方法,并分享了一些调试和开发经验。最后还附上了在线预览和GitHub商城源码的链接,以及加入前端交流QQ群的方式。 ... [详细]
  • npmrunbuild后dist文件夹下面直接浏览器打开index.html,css和js的路径都不正确。放到跟目录下就正常了,iis上同样只能在根目录下。我项目的目录如下: ... [详细]
  • FroggerTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:32257Accepted:10396DescriptionFr ... [详细]
  • 原文链接https://www.cnblogs.com/zhouzhendong/p/9161514.html ... [详细]
  • PIMPL 是 C++ 中的一个编程技巧,意思为指向实现的指针。具体操作是把类的实现细节放到一个单独的类中,并用一个指针进行访问 ... [详细]
  • spotify engineering culture part 1
    原文,因为原视频说的太快太长,又没有字幕,于是借助youtube,把原文听&打出来了。中文版日后有时间再翻译。oneofthebigsucceessfactorshereatSpo ... [详细]
  • 在ROS系统中,参数读写一般通过xml或者yaml格式的文件,其中yaml用得比较多。这是一种可读性高,轻量级的标记语言,简单好用。对于yaml文件,ros中用的较早版本的yaml- ... [详细]
  • [二分图]JZOJ 4612 游戏
    DescriptionInputOutputSampleInput44#****#****#*xxx#SampleOutput5DataConstraint分析非常眼熟࿰ ... [详细]
  • ReferenceError: regeneratorRuntime is not defined ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
author-avatar
YYANNILl_242
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有