1、demo

项目结构:

  

  index.html

<!DOCTYPE html>
<html>
<head>
<title>标题</title>
<meta charset="utf-8">
</head>
<body>
<h3 class="blue">h3标签内的文本</h3>
<ul>
<li>这是一个li标签</li>
<li>这是一个li标签</li>
<li>这是一个li标签</li>
<li>这是一个li标签</li>
<li>这是一个li标签</li>
</ul> <div class="img"></div> <div id="app">
<h3> {{ msg }} </h3> <login></login>
</div> <script type="text/javascript" src="../dist/bundle.js"></script>
</body>
</html>

  main.js

// 这是项目的入口js文件
// 导入jquery, 这是ES6中导入模块的语法
import $ from 'jquery';
import './css/common.css'; // 注意:在webpack中,使用下面这句导入vue,功能不完整,只提供runtime-only的方式,并没没有提供向网页中那样的使用方式
//import Vue from 'vue';
// 导入完整的vue
import Vue from '../node_modules/vue/dist/vue.js'; // 导入register组件
import register from './components/register.vue';
// 默认webpack无法处理.vue文件,要安装第三方loader
// npm i vue-loader vue-template-compiler -D $(function() {
$('li:odd').css('backgroundColor','yellow');
$('li:even').css('backgroundColor','#eee');
}); // 组件的模板对象
var login = {
template: '<h1>登录组件</h1>'
}; var vm = new Vue({
el: '#app',
data: {
msg: 'hello vue'
},
components: {
login
},
   // render:将register组件渲染到el指定的div#app中(div#app中其他内容被覆盖)
   // 简写render: c => c(register)
render: function (createElements) {
return createElements(register);
} });

  register.vue

<template>
<h1>注册组件</h1>
</template> <script>
</script> <style>
</style>

  package.json

{
"name": "webpack-study1",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"jquery": "^3.3.1",
"vue": "^2.6.10"
},
"devDependencies": {
"css-loader": "^0.28.0",
"file-loader": "^1.1.11",
"style-loader": "^0.21.0",
"url-loader": "^1.0.1",
"vue-loader": "^15.2.4",
"vue-template-compiler": "^2.5.16",
"webpack": "^3.6.0"
}
}

  webpack.config.js

var path = require('path');

const { VueLoaderPlugin } = require('vue-loader');

// 通过node的模块操作,向外暴露一个配置对象
module.exports = {
entry: path.join(__dirname, './src/main.js'), // 入口,表示要使用webpack打包哪个文件
output: { // 出口
path: path.join(__dirname, './dist'),
filename: 'bundle.js'
},
module: { //用于配置所有第三方模块加载器
rules: [ //所有第三方模块的匹配规则
// 首先安装loader: npm i style-loader css-loader -D, 然后配置
{ test:/\.css$/, use: ['style-loader','css-loader'] },
// 首先安装loader: npm i url-loader file-loader -D, 然后配置
{
test:/\.(jpg|png|gif|bmp|jpeg)$/,
use: ['url-loader']
// limit单位byte,如果图片大于等于limit给定值,则不会被转为base64格式字符串
// name=[name].[ext]:打包的图片原名相同
// use: ['url-loader?limit=1000&name=[name].[ext]']
},
// 首先安装loader: npm i vue-loader vue-template-compiler -D, 然后配置
{ test: /\.vue$/, use: 'vue-loader' }
]
},
plugins: [
new VueLoaderPlugin()
],
};

2、遇到的问题

  2.1、webpack版本是3.6.0,与css-loader不兼容

  

  2.2、下载安装vue-loader以后,报错缺少相关插件 include VueLoaderPlugin in your webpack config
        const { VueLoaderPlugin } = require('vue-loader');
        ……
        plugins: [
                new VueLoaderPlugin(),
            ],

在vue中结合render函数渲染指定的组件到容器中的更多相关文章

  1. render 函数渲染表格的当前数据列使用

    columns7: [ { title: '编号', align: 'center', width: 90, key: 'No', render: (h, params) => { return ...

  2. iview table表中使用render函数props传值出现问题

    使用iview中的table表格时避免不了使用render函数渲染自定义内容,或者渲染组件.但是在正常使用时出现了props传值无法识别, 按照官网介绍使用props如下: render: (h, p ...

  3. 使用render函数渲染组件

    使用render函数渲染组件:https://www.jianshu.com/p/27ec4467a66b

  4. iview table中的render函数使用

    1.表格列数据内容过多可以用以下两个属性解决: ellipsis:"true', tooltip:true 使每个列的内容如果过多的话变为省略号 2.table中的render函数(实现根据 ...

  5. vue中的render函数介绍

    简介:对于不了解slot的用法(参考:大白话vue-slot的用法)又刚接触render函数的同学来说,官网的解释无疑一脸懵逼,这里就整理下个人对render函数的理解 问题: 1.render函数是 ...

  6. Vue中的render函数随笔

    使用vue-cli创建项目后,再main.js里面有这样一段代码: new Vue({ render:h => h(App) }).$mount('#app') render函数是渲染一个视图, ...

  7. Vue.js之render函数基础

    刚才翻了一下博客,才发现,距离自己写的第一篇Vue的博客vue.js之绑定class和style(2016-10-30)已经过去一年零两天.这一年里,自己从船厂的普通技术员,成为了一个微型不靠谱创业公 ...

  8. 19 使用Vue实例的render方法渲染组件

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Vue2.x中的Render函数

    Render函数是Vue2.x版本新增的一个函数:使用虚拟dom来渲染节点提升性能,因为它是基于JavaScript计算.通过使用createElement(h)来创建dom节点.createElem ...

随机推荐

  1. pom文件中引入依赖成功了,但是jar包找不着

    编写代码的时候总是会碰到各种奇奇怪怪的问题,最近引入依赖的时候发现依赖虽然引入成功了,而且查看仓库,仓库中也存在该jar包,但是项目代码中并没有找到该jar包,重新导入reimport各种都试了还是不 ...

  2. hibernate-HQL连接查询 转载sincoolvip

    和SQL查询一样,HQL也支持各种各样的连接查询,如内连接.外连接 连接类型 HQL语法内连接 inner join 或者join迫切内连接 inner join fetch 或join fetch左 ...

  3. python面向对象中的封装、继承、多态

    封装 可以简单的理解为隐藏一切可以隐藏的实现细节,只向外界提供简单的编程接口.我们在类中定义的方法其实就是把数据和数据的操作封装起来了,在我们创建了对象之后,只需要给对象发送一个消息(调用方法)就可以 ...

  4. 2018-2019 ICPC, NEERC, Southern Subregional Contest (codeforces 1070)

    A. 直接从状态(0,0)bfs, 这样一定是最小的 #include <iostream> #include <sstream> #include <algorithm ...

  5. oracle三种表连接方式

    1. 排序合并连接(Sort Merge Join) 排序合并连接的执行过程如下所示: * 将每个行源的行按连接谓词列排序 * 然后合并两个已排序的行源,并返回生成的行源 例如: select * f ...

  6. ExpressionTree学习笔记

    概述: 这段时间需要制定自定义查询条件,感觉有必要学习ExpressionTree. 学习参考资料:https://msdn.microsoft.com/en-us/library/mt654263. ...

  7. Python 描述符 (descriptor)

    1.什么是描述符? 描述符是Python新式类的关键点之一,它为对象属性提供强大的API,你可以认为描述符是表示对象属性的一个代理.当需要属性时,可根据你遇到的情况,通过描述符进行访问他(摘自Pyth ...

  8. springboot中的编码设置

    在springboot中编码配置可以通过filter也可以通过springboot的核心配置文件application.properties中配置如下信息: #配置字符编码spring.http.en ...

  9. 一、JS基本基础

    一.主流编辑器 早期 atom    前几年sublime    小巧,轻量,功能插件较多:  webstorm 集成开发环境 vscode 免费开源的. 运行环境  : 浏览器端  谷歌,IE,fi ...

  10. 9.css3动画-2D/3D变形--trasform

    transform: None不转换. Translate(x,y)通过设置X轴的值进行移动. translateY(y)通过设置Y轴的值进行移动. Scale(x,y)定义2D缩放. ScaleX( ...