昨天开始学习vue咯
从Vue官网文档开始学习
官网地址:Introduction | Vue.js (vuejs.org)
ennnnn,需要更高版本的node.js,要18.0或更高,我之前用来构建这个网站的node版本只有16,装个新版的,顺便编辑一篇,
详见 2024-02-23-安装Node-js,

尝试使用构建步骤的
这个简单,按官网步骤来就行,
第一步搭脚手架,执行

按照提示输入信息就好,等创建完成后,进入到项目目录,然后执行
安装依赖并运行开发服务器,

按照输出信息,浏览器打开http://localhost:5173/
就能看到页面了,

可以在目录里找到项目的源文件,感觉还是挺易懂的,这个页面也好有感觉,好厉害୧(๑•̀◡•́๑)૭,

尝试无构建步骤的
ennnn,官网没有目录文件结构示意,就是前两三篇里提到了可以无构建步骤的运行vue,
琢磨了一下,嘿,还真能成,
在前几篇里就找到这里一个例子,是按文件形式贴出代码的,就直接按这俩文件来建,新建一个目录,
建立文件


略微自行修改
最主要的是把原本使用本地依赖的'vue'
修改为使用ES模块构建版本的'https://unpkg.com/vue@3/dist/vue.esm-browser.js'
,
1 2 3 4 5 6 7 8 9 10
| <!-- index.html --> <div id="app"> </div>
<script type="module"> import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js' import MyComponent from './my-component.js'
createApp(MyComponent).mount('#app') </script>
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| import { ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js' export default { setup() { const count = ref(0) return { count } }, template: ` <button v-on:click="count++"> Count is: {{ count }} </button> ` }
|
部署
官网有提到ES模块不能直接通过file://
协议工作(我会一点点JS,不过也就会一点点,没有深入地透彻理解,所以关于ES模块也不太懂),

于是我在本机的nginx配置里新加了一个虚拟主机配置(我的机器原本就配置的有nginx,并且作为服务是自启动运行的,这个方便一些),
不过我也试了官网说的npx serve
。。。等下,出意外了,焯!!!
我昨天试了好多次,因为这个方便嘛,打个命令的事,但是我一直没有部署起来,然后才转而使用nginx提供web服务,
我刚刚写到这里,细看,才发现,昨天我想当然了,没看认真,下意识以为是npx server
,寄。。。跑的起来才有鬼了。。。

昨天我看到的一直是下图这个报错,说找不到可执行的东西来运行,

是我太想当然了,不仔细啊,焯!
蒜了,过去了过去了,下次注意。。。
下面贴一下nginx的配置:

网页效果
响应式的东西渲染出来了,也可以点击,嘿嘿,成了,


再贴一点尝试的其他代码修改
都达到了我的预期效果
1
1 2 3 4 5 6 7 8 9 10
| <div id="app"> </div>
<script type="module"> import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js' import MyComponent from './my-component.js'
createApp(MyComponent).mount('#app') </script>
|
1 2 3 4 5 6 7 8 9
| import { ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js' export default { setup() { const count = ref(0) return { count } }, template: `<button v-on:click="count++">Count is: {{ count }}</button>` }
|
2
这个是只有一个html文件的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <div id="app"> <button v-on:click="count++">Count is: {{ count }}</button> </div>
<script type="module"> import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js' const app = createApp({ setup() { const count = ref(0) return { count } } }) app.mount('#app') </script>
|
3
1 2 3 4 5 6 7 8 9 10 11 12
| <div id="app"> <button v-on:click="count++">Count is: {{ count }}</button> </div>
<script type="module"> import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js' import MyComponent from './my-component.js'
const app = createApp(MyComponent) app.mount('#app') </script>
|
1 2 3 4 5 6 7 8
| import { ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js' export default { setup() { const count = ref(0) return { count } } }
|
4
1 2 3 4 5 6
| <div id="app"> <button v-on:click="count++">Count is: {{ count }}</button> </div>
<script type="module" src="./my-component.js"></script>
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'
const app = createApp({ setup() { const count = ref(0) return { count } } })
app.mount('#app')
|