当前位置: 首页 > backend >正文

Laravel-vite+vue开发前端模板

开始这篇文章的时候,你已经安装了laravel!你已经安装了laravel!你已经安装了laravel!

然后你的laravel服务器环境已经搭建好,应用可以正常访问

laravel vite plugin 官方原文

laravel默认已经集成vitejs,单纯使用vite只需要执行以下命令即可

npm install

但是这里我们需要使用vue作为前端框架

npm install @vitejs/plugin-vue

node依赖安装完成后,然后执行下面的命令 

npm run build
// or
num run dev

开发过程当然是走dev。

num run dev 这条命令执行以后,控制台大概是这样的:

VITE v6.3.2  ready in 359 ms➜  Local:   http://localhost:5173/➜  Network: use --host to expose➜  press h + enter to show helpLARAVEL v12.9.2  plugin v1.2.0➜  APP_URL: http://localhost

注意这上面的两个链接,这是由vite插件生成的。我们不用管它。

手痒可以点开浏览器看看。看完关掉就好了

!!!!!但是哈!!!!!!

控制台窗口不要关!!!!!!

这个是前端开发环境的热插拔服务,

挂着这个窗口,我们正常访问laravel应用入口,可以看到一个demo页面

现在我们用浏览器挂着这个页面。

接下来修改应用根目录下的vite.config.js,

这里直接复制官方的例子。

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';export default defineConfig({plugins: [laravel(['resources/js/app.js']),vue({template: {transformAssetUrls: {// The Vue plugin will re-write asset URLs, when referenced// in Single File Components, to point to the Laravel web// server. Setting this to `null` allows the Laravel plugin// to instead re-write asset URLs to point to the Vite// server instead.base: null,// The Vue plugin will parse absolute URLs and treat them// as absolute paths to files on disk. Setting this to// `false` will leave absolute URLs un-touched so they can// reference assets in the public directory as expected.includeAbsolute: false,},},}),],
});

到这里我们可以看到浏览器窗口的变化(css样式没了),but.别急!

然后再laravel根目录下找到resources,

打开js路径添加一个Pages文件夹用来存放模板组件,你也可以起其他名字

然后新建一个Index.vue文件

接下来到vue官方文档复制一个Hello World贴到刚才创建的./Pages/Index.vue文件中

或者你也可以自己写一个demo (我超懒)

<!--
跟 Vue 说 Hello World!
--><script setup>
import { ref } from 'vue'// “ref”是用来存储值的响应式数据源。
// 理论上我们在展示该字符串的时候不需要将其包装在 ref() 中,
// 但是在下一个示例中更改这个值的时候,我们就需要它了。
const message = ref('Hello World!')
</script><template><h1>{{ message }}</h1>
</template>

然后按照官方文档挂载组件:

打开./resources/js/app.js文件

import { createApp } from 'vue';
import Index from './Pages/Index.vue';const app = createApp(Index);app.mount('#app');

laravel的vite插件依旧是Blade模板的一个扩展。

所以接下来最后一步是把刚才的vue代码导入Blade

现在我们添加一个blade模板文件

打开./resources/views/

将默认的welcome.blade.php文件复制一个到当前目录,我给他起名index.blade.php

修改路由文件routes/web.php

<?phpuse Illuminate\Support\Facades\Route;Route::get('/', function () {return view('index'); //将默认模板改为index
});

接下来修改index.blade.php

清空模板文件里<body>标签的全部内容(水一下文)

    <body></body>

刷新浏览器,确认你看到的页面已经是一片空白

接下来就是见证奇迹的时刻:给清空的<body>标签添加一个名为app的id属性

    <body id="app"></body>

然后刷新浏览器,你能正常看到Hello World!

本章就写到这里了!

有空再写laravel的模板标签在vue输出 

http://www.xdnf.cn/news/724.html

相关文章:

  • 最新扣子空间实操指南
  • QML--全局对象Qt
  • 1.Vue自动化工具安装(Vue-cli)
  • 自定义请求头导致跨域的解决办法
  • C++学习:六个月从基础到就业——内存管理:RAII原则
  • 键入网址到网页显示,期间发生了什么?
  • Arduino示例代码讲解:Project 08 - Digital Hourglass 数字沙漏
  • DAY 50 leetcode 1047--栈和队列.删除字符串中的所有相邻重复项
  • Spring MVC 如何体现 Model-View-Controller 各自的职责?它们之间是如何协作的?
  • 【Linux】进程状态
  • 【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(17):PlanReactExecutor
  • OpenCV 自适应背景更新 cv2.accumulateWeighted
  • 【OC】AVPlayerLayer的学习
  • PG psql --single-transaction 参数功能
  • 秘密任务 3.0:如何通过 JWT 认证确保 WebSockets 安全
  • c++基础·左值右值
  • HBase安装与基本操作指南
  • 安卓单机斗地主,具备休闲挑战等多模式
  • paddleocr出现: [WinError 127] 找不到指定的程序解决办法
  • 一招解决所以Maven找不到依赖包的问题
  • 即插即用模块(1) -MAFM特征融合
  • javascript day4
  • LicheeRV Nano 与Ubuntu官方risc-v 镜像混合
  • 12【生命周期·入门】为何需要与显式标注 (`‘a`):让编译器读懂引用的“有效期”
  • Oracle--SQL基本语法
  • lmm-r1开源程序是扩展 OpenRLHF 以支持 LMM RL 训练,用于在多模态任务上重现 DeepSeek-R1
  • Eureka搭建
  • BeautifulSoup 库的使用——python爬虫
  • 算法—合并排序—js(场景:大数据且需稳定性)
  • 23种设计模式-结构型模式之装饰器模式(Java版本)