在 Laravel 项目中编写第一个 Vue 组件 | 前端入门篇 | Laravel 入门到精通教程


本站和网页 https://xueyuanjun.com/post/9674.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

在 Laravel 项目中编写第一个 Vue 组件 | 前端入门篇 | Laravel 入门到精通教程
Laravel 学院
文档
Laravel 8.x 中文文档
Laravel 7.x 中文文档
Laravel 6.x 中文文档
Laravel 5.8 中文文档
Laravel 5.7 中文文档
Laravel 5.6 中文文档
Laravel 5.5 中文文档
Laravel 5.4 中文文档
Laravel 5.3 中文文档
Laravel 5.2 中文文档
Laravel 5.1 中文文档
Lumen 中文文档
全栈教程
PHP 全栈工程师指南
PHP 入门到实战
Laravel 入门到精通
Vue.js 入门到实战
玩转 PhpStorm 教程
Laravel 博客入门项目
Laravel 微信小程序项目
Laravel 前后端分离项目
Swoole 入门到实战
Eloquent 性能优化实战
Redis 高性能实战系列
Laravel 新版本特性
PHP 新特性与最佳实践
Golang
Go 入门教程
Go Web 编程
Gin 使用教程
微服务开发
内功修炼
数据结构与算法
网络协议
微服务从入门到实践
高性能 MySQL 实战
高性能 Redis 实战
Laravel 消息队列实战
Laravel 从学徒到工匠
PHP 设计模式系列
名企面试指南
资源库
Laravel 资源大全
Laravel 开源项目
Laravel 扩展包
Laravel 资源下载
更多
博客 & 新闻
问答 & 讨论
Leetcode 题解
学院君读书笔记系列
关于 Laravel 学院
Laravel 互助学习群
Golang 互助学习群
更多
Laravel 中文文档
Laravel 全栈教程
Laravel 学习路径
Go 入门教程
程序员内功修炼
博客
问答
搜索
注册
登录
Info
Content
章节导航
Laravel 入门到精通教程
目录索引
开发环境篇
8篇文章
通过 Sail 构建基于 Docker 的 Laravel 本地集成开发环境
通过 Homestead 构建基于 Vagrant 的 Laravel 本地集成开发环境
通过 Valet 在 Mac 系统构建轻量级 Laravel 本地集成开发环境
Mac 系统为 Valet 开发环境安装指定版本 MySQL
在 Mac/Windows 系统中使用 Laradock 搭建基于 Docker 的 Laravel 开发环境
使用 Laragon 在 Windows 中快速搭建 Laravel 本地开发环境
使用 Visual Studio Code 作为 Laravel 开发工具
创建并运行一个新的 Laravel 项目
路由&控制器篇
5篇文章
Laravel 路由入门:路由定义、参数传递及路由命名
Laravel 路由分组规则:中间件、子域名、路由前缀和命名空间
Laravel 控制器:从 MVC 模式到资源控制器
路由进阶使用:模型绑定、兜底路由、频率限制和路由缓存
表单方法伪造与跨站请求伪造(CSRF)攻击防护
视图模板篇
4篇文章
视图入门:Laravel 支持的视图格式以及在路由中的基本使用
Blade 模板引擎入门篇:数据渲染 & 控制结构
Blade 模板引擎进阶篇:模板继承 & 组件引入
Blade 模板引擎高级篇:View Composer & 自定义指令
前端入门篇
3篇文章
在 Laravel 项目中使用 Bootstrap 框架
CSS 预编译语言 Sass 快速入门教程
在 Laravel 项目中编写第一个 Vue 组件
请求处理篇
5篇文章
通过 Request 对象实例获取用户请求数据
基于 Laravel + Vue 组件实现文件异步上传
在 Laravel 控制器中进行表单请求字段验证
通过表单请求类实现请求字段验证和错误提示
通过匿名函数和验证规则类自定义字段验证规则
命令行交互篇
3篇文章
在 Laravel 中编写第一个 Artisan 命令
在 Laravel 中编写高级的 Artisan 命令
通过 Tinker 实现 Laravel 命令行交互式 Shell
数据库与 Eloquent 模型
16篇文章
入门篇(一):数据库连接配置和读写分离
入门篇(二):通过迁移文件定义数据表结构
入门篇(三):通过填充器快速填充测试数据
入门篇(四):通过查询构建器实现简单的增删改查操作
进阶篇(一):通过查询构建器实现复杂的查询语句
进阶篇(二) —— 通过 Eloquent 模型实现简单增删改查操作
进阶篇(三):通过 Eloquent 模型实现批量赋值和软删除
进阶篇(四):在 Eloquent 模型类上设置访问器和修改器
进阶篇(五):在 Eloquent 模型类上使用全局作用域和局部作用域进行查询
进阶篇(六):Eloquent 模型事件和监听方式大全
进阶篇(七):Eloquent 模型关联关系(上)
进阶篇(八):Eloquent 模型关联关系(中)
进阶篇(九):Eloquent 模型关联关系(下)
结合 Bootstrap + Vue 组件在 Laravel 中实现异步分页功能
在 Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO
基于 Laravel + Vue 构建一个类似 Twitter 的 Web 应用
用户认证与授权
19篇文章
使用 Entrust 扩展包在 Laravel 5 中实现 RBAC 权限管理(一):安装配置篇
使用 Entrust 扩展包在 Laravel 5 中实现 RBAC 权限管理(二):使用篇
基于 Laravel Permission 扩展包在项目中轻松实现 RBAC 权限管理功能
通过内置脚手架快速实现用户认证
用户注册登录流程及多字段登录实现
基于多表的用户认证功能实现(前后台用户)
通过 Passport 实现 API 请求认证:单页面应用篇
通过 Passport 实现 API 请求认证:移动端应用篇(密码授权令牌)
通过 Passport 实现 API 请求认证:第三方应用篇(授权码获取令牌)
通过 Passport 实现 API 请求认证:开放平台篇(客户端凭证令牌)
通过 Passport 实现 API 请求认证:沙箱测试篇(私人访问令牌)
通过 Passport 实现 API 请求认证:隐式授权令牌
通过 Passport 实现 API 请求认证:令牌作用域详解
通过 Laravel 内置脚手架快速实现邮箱验证功能
通过监听注册登录、邮箱验证事件实现简单的积分功能
通过 Cookie 实现基于 Session 的单点登录
基于 CAS 实现通用的单点登录解决方案(一):CAS 原理及服务端搭建
基于 CAS 实现通用的单点登录解决方案(二):CAS 客户端搭建及单点登录测试
基于 CAS 实现通用的单点登录解决方案(三):用户单点退出实现
请求响应底层剖析
8篇文章
Laravel 底层是如何处理 HTTP 请求的
Laravel 请求类 Request 剖析
Laravel 响应类 Response 剖析
Laravel 中间件底层源码剖析
Laravel 路由匹配和执行底层源码剖析
异常处理篇之底层源码剖析
异常处理篇之异常信息报告、渲染及自定义处理
Laravel 框架如何基于 Composer 实现类和文件的自动加载
测试驱动开发
12篇文章
从基于 PHPUnit 编写单元测试开始
在 Laravel 中基于 PHPUnit 进行代码测试:目录结构及测试编排文件 phpunit.xml 详解
在 Laravel 中基于 PHPUnit 进行代码测试:单元测试篇
在 Laravel 中基于 PHPUnit 进行代码测试:HTTP 测试篇(上)
在 Laravel 中基于 PHPUnit 进行代码测试:HTTP 测试篇(下)
在 Laravel 中基于 Dusk 实现浏览器自动化测试快速入门
通过测试驱动开发构建待办任务项目(一):后端接口和功能测试篇
通过测试驱动开发构建待办任务项目(二):前端功能和浏览器测试篇
持续集成的定义和常用 CI 系统对比
基于 Github + CircleCI 实现 Laravel 项目的持续集成
基于 Github + Travis CI 实现 Laravel 项目的持续集成
基于 Coding + Jenkins 实现 Laravel 项目的持续集成
构建 API 接口:原生开发
5篇文章
编写 JSON API —— RESTful 风格 API 设计原则与最佳实践
编写 JSON API —— 基于资源控制器和 API 资源类快速构建 API 接口
Laravel API 系列教程(一): 基于 Laravel 5.5 构建 & 测试 RESTful API
Laravel API 系列教程(二): 结合 Laravel 5.5 和 Vue SPA 基于 jwt-auth 实现 API 认证
Laravel API 系列教程(三):使用 API Resource 来创建自己的 {JSON:API} 格式 API
构建 API 接口:GraphQL
6篇文章
Laravel API 系列教程(四):基于 GraphQL 构建 Laravel API —— 基本使用篇
Laravel API 系列教程(五):基于 GraphQL 构建 Laravel API —— 高级使用篇
解决前后端分离应用跨域请求利器 —— Laravel CORS 扩展包
基于 Laravel + Vue + GraphQL 实现前后端分离的博客应用(一) —— 用户注册登录
基于 Laravel + Vue + GraphQL 实现前后端分离的博客应用(二) —— 用户列表及详情页
基于 Laravel + Vue + GraphQL 实现前后端分离的博客应用(三) —— 文章发布及浏览
构建 API 接口:Dingo API
12篇文章
使用 Dingo API 快速构建 RESTful API(一)—— 安装配置篇
使用 Dingo API 快速构建 RESTful API(二)—— 编写第一个 API 接口
使用 Dingo API 快速构建 RESTful API(三)—— 返回基本 JSON 响应
使用 Dingo API 快速构建 RESTful API(四)—— 转化器篇(上):Fractal 简介及其使用入门
使用 Dingo API 快速构建 RESTful API(五)—— 转化器篇(下):结合响应构建器构建 JSON 响应
使用 Dingo API 快速构建 RESTful API(六)—— 转化器及响应构建器的高级使用
使用 Dingo API 快速构建 RESTful API(七)—— 错误及异常处理
使用 Dingo API 快速构建 RESTful API(八)—— API 认证实现(上)
使用 Dingo API 快速构建 RESTful API(九)—— API 认证实现(下)
使用 Dingo API 快速构建 RESTful API(十)—— 路由访问频率限制
使用 Dingo API 快速构建 RESTful API(十一)—— 在应用内部请求 Dingo API
使用 Dingo API 快速构建 RESTful API(十二)—— 生成 API 文档
构建 API 接口:生成 API 文档
3篇文章
使用 Laravel API 文档生成器扩展包自动为项目生成 API 文档
在 Laravel 中集成 API 文档生成器扩展包为 Dingo API 接口生成文档
在 Laravel 项目中集成 Swagger 扩展包为 Laravel API 生成接口文档并对接口进行测试
系统组件
4篇文章
基于 Laravel + Pusher + Vue 通过事件广播构建实时聊天室应用
由浅入深:基于 Laravel Broadcast 实现 WebSocket C/S 实时通信
基于迅搜(xunsearch) + Laravel Scout 实现 Laravel 学院全文搜索功能(支持多模型搜索)
基于七牛云 PHP SDK + Laravel 文件存储实现 Laravel 学院静态资源云存储及 CDN 加速
图书
Laravel 入门到精通教程
前端入门篇
在 Laravel 项目中编写第一个 Vue 组件
在 Laravel 项目中编写第一个 Vue 组件
由 学院君 创建于4年前, 最后更新于 3年前
版本号 #1
34292 views
6 likes
0 collects
和 CSS 框架一样,Laravel 不强制你使用什么 JavaScript 客户端框架,但是开箱对 Vue.js 提供了良好的支持,如果你更熟悉 React 的话,也可以将默认的脚手架代码替换成 React,实现细节参考官方文档。
学院拥抱的是 Vue.js 框架,所以后续前端相关教程都会基于 Vue.js 编写,有关 Vue.js 的入门教程,可以阅读官方文档,值得一提的是,Vue.js 的作者尤雨溪是中国人,所以该框架从文档角度对中文很友好,关于如何快速入门 Vue.js 框架,作者在知乎上也有建议的学习路线:https://zhuanlan.zhihu.com/p/23134551,可以说是很贴心了,大家遵循这个路线,相信很快可以入门 Vue.js 的开发。
既然已经有这么丰富的资源,关于 Vue.js 的介绍和使用,我这里就不赘述了,我们重点来介绍如何在 Laravel 中通过 Vue 组件构建前端页面和功能。学习过 Vue.js 之后,你会知道通过 Vue Loader 我们可以在前端通过单文件组件的格式编写 Vue 组件,然后注册、引用,在 Laravel 中我们也是这么干的,这可以极大提高前端代码的复用性、可读性和可维护性,下面我们以 Laravel 默认的欢迎页面为例,将其改为通过 Vue 组件来实现,希望可以帮助你快速入门如何在 Laravel 中编写 Vue 组件。
首先我们在 resources/js/components 目录下新增一个 Vue 组件文件 WelcomeComponent.vue,初始化代码如下:
<style scoped>
</style>
<template>
</template>
<script>
export default {}
</script>
我们会将该组件的样式代码定义在 <style> 标签中(指定 lang="scss" 可支持 Sass 语法),scoped 表示这段 CSS 样式代码只对当前组件有效。
在 <template> 标签中定义 HTML 模板代码,以及在 <script> 中定义组件的 JavaScript 代码以及导出模块。
然后我们将默认欢迎视图中的样式和 HTML 代码迁移过来,这样,最终的 WelcomeComponent.vue 组件代码看起来是这样的:
<style scoped>
html, body {
background-color: #fff;
color: #636b6f;
font-family: 'Nunito', sans-serif;
font-weight: 200;
height: 100vh;
margin: 0;
.full-height {
height: 100vh;
.flex-center {
align-items: center;
display: flex;
justify-content: center;
.position-ref {
position: relative;
.top-right {
position: absolute;
right: 10px;
top: 18px;
.content {
text-align: center;
.title {
font-size: 84px;
.links > a {
color: #636b6f;
padding: 0 25px;
font-size: 12px;
font-weight: 600;
letter-spacing: .1rem;
text-decoration: none;
text-transform: uppercase;
.m-b-md {
margin-bottom: 30px;
</style>
<template>
<div class="flex-center position-ref full-height">
<div class="top-right links">
<a href="/login">登录</a>
<a href="/register">注册</a>
</div>
<div class="content">
<div class="title m-b-md">
Laravel
</div>
<div class="links">
<a href="https://laravel.com/docs">文档</a>
<a href="https://laracasts.com">视频</a>
<a href="https://laravel-news.com">新闻</a>
<a href="https://nova.laravel.com">Nova</a>
<a href="https://forge.laravel.com">Forge</a>
<a href="https://github.com/laravel/laravel">GitHub</a>
</div>
</div>
</div>
</template>
<script>
export default {}
</script>
注意,Vue 组件只支持 JavaScript 代码,不支持 Blade 语法,所以我们将对应的语法和指令做了移除和更新处理。
然后我们在 resources/js/app.js 中全局注册这个组件以便可以在视图文件中应用:
...
Vue.component('welcome-component', require('./components/WelcomeComponent.vue'));
const app = new Vue({
el: '#app'
});
我们通过 Vue.component() 方法全局注册了 welcome-component 组件,第一个参数是组件名,第二个参数是引入组件文件的位置,这样我们就可以在 resources/views/welcome.blade.php 视图文件中通过组件名使用这个组件了,修改 welcome.blade.php 代码如下:
<!doctype html>
<html lang="{{ app()->getLocale() }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title>
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
<welcome-component></welcome-component>
</div>
<script src="{{ asset('js/app.js') }}"></script>
</body>
</html>
移除了之前的 CSS 代码,将其改为通过编译后的外部文件引入(Laravel Mix 会自动识别 Vue 组件中的 CSS 代码并将其编译到 app.css 文件中)。移除了之前的 HTML 代码,将其改为通过 welcome-component 组件引入,并且将组件挂载到 id="app" 的 div 容器内,这是我们在 app.js 中定义的 Vue 容器,如果组件不挂载到这个容器将不会生效。最后我们引入了编译后的 app.js 文件,完成 Vue 组件的挂载和渲染。
这样,我们就将之前默认实现的欢迎页面改写为了通过 Vue 组件构建的页面,在项目根目录下运行 npm run dev 重新编译前端资源(如果之前没有运行过 npm install 的话,需要先运行这个命令):
编译完成后,再次访问应用首页,就可以看到新的由 Vue 组件驱动的欢迎页面:
如果你的 Chrome 浏览器安装过 Vue DevTools 扩展,F12 就可以看到页面包含了 WelcomeComponent 组件:
好了,我们已经完成了在 Laravel 中编写第一个 Vue 组件,很简单吧,有了 Vue 组件,以后前端开发和维护会更加高效,想要在 Laravel 中结合 Vue 构建更加复杂的前后端分离应用,可以阅读学院提供的《基于 Laravel + Vue 构建 API 驱动的前后端分离应用系列》教程深入工程实践。
Laravel
前端
Vue.js
组件
欢迎页面
前端框架
教程
快速入门
单文件
点赞
取消点赞
收藏
取消收藏
赞赏
分享到以下平台:
<< 上一篇:
CSS 预编译语言 Sass 快速入门教程
>> 下一篇:
通过 Request 对象实例获取用户请求数据
41 条评论
#41
laraveladmin.cn
评论于 1年前
正在删除评论...
vue用起来!!!
推荐个已有轮子,可少写很多代码
www.laraveladmin.cn
&lsaquo;
&rsaquo;
登录后即可添加评论
升级为学院君订阅用户(新年优惠🎁)
相关推荐
Laravel 5.3 起将使用 Vue.js 作为默认 JavaScript 前端框架
Laravel 新特性系列
新特性介绍
Blade 模板引擎进阶篇:模板继承 & 组件引入
Laravel 入门到精通教程
视图模板篇
CSS 预编译语言 Sass 快速入门教程
Laravel 入门到精通教程
前端入门篇
通过测试驱动开发构建待办任务项目(二):前端功能和浏览器测试篇
Laravel 入门到精通教程
测试驱动开发
前端问题,抄代码失败
问答
回到顶部
2022 基于 Laravel 6 构建
关于学院
订阅服务
友情链接
站点地图
本站 CDN 加速服务由又拍云赞助