Тест источника ошибок, некоторые из них онлайн. Я желаю вам больше правок, и сегодня вам будет трудно закрыть глаза.
Это оVue3.0
Вторая статья в серии статей, посвященная созданиюVue3.0
иvite
изVue3.0
Среда разработки, благодаря изучению данной статьи, вы узнаете следующее:
- использовать
vite
инициализацияVue3.0
проект - настроить
ts
- настроить
vue-router
- настроить
vuex
- использовать
Vue3.0
разрабатыватьTodoList
Пример
Эта статья была впервые опубликована в [Playing at the Front End], следуйте за мной и учитесь вместе с вами
Vue3.0
. В то же время, нажмите на ссылку ниже, чтобы получить доступ к более интересным статьям редактора
Чтобы изучить Vue3.0, давайте сначала разберемся с прокси350+ лайков
Практические навыки, Vue тоже умеет так писать2800+ лайков
Абсолютно сухой материал~! Изучите эти советы Vue, вы сможете уйти с работы пораньше и встречаться с богиней1300+ лайков
Я настраиваю Vue в проекте так1200+ лайков
Впереди высокая энергия, это последняя волна боевых навыков Vue, это бесполезно и потрясающе.1100+ лайков
Научись пользоваться Vue JSX, машина старых крестных твоя800+ лайков
использоватьvite
Инициализировать проект
привет введение
vite
Это новый инструмент, над которым Юда поработал в этом году.vite
Описание звучит так: Vite — это самоуверенный инструмент для веб-разработки, который обслуживает ваш код через встроенный импорт модуля ES во время разработки и связывает его сRollupдля производства. В переводе на китайский язык это:Vite
является уроженцемES Module
ВедомыйWeb
Разработать инструменты сборки. Нативный браузер в среде разработкиES imports
разработки, в производстве на основеRollup
Бэйл.
В приведенном выше отрывке упоминается ключевое словоES Module
, что это? Для получения подробной информации вы можете посетитьdeveloper.Mozilla.org/this-cn/docs/…смотреть. Мы будем кратки здесь. В первые дни не было фронтенд-инжиниринга, а потом мы написалиjavascript
записываются в файл, а затем передаютсяscript
Метки для ссылки, а позже с развитием интерфейса все больше и больше,js
Зависимости между ними становятся все более сложными, иJavaScript 程序拆分为可按需导入的单独模块
Механизм для поддержания этой зависимости родилсяAMD
,CMD
подожди, покаES Module
Это функция, от которой зависит нативный модуль, поддерживаемый браузером.
Зачем использовать вайт
Почему вы хотели запуститьvite
, где мы используемwebpack
Когда каждый проект разработки должен начинаться через десятки секунд или даже более одной минуты, медленное и горячее обновление происходит относительно медленно, иvite
Главная фишка быстрая, официальный сайт дляvite
характеризуется
- быстрый холодный пуск
- Мгновенное горячее обновление модуля
- Настоящая компиляция по запросу
Насколько это быстро? Давайте сначала создадим новый проект.
Инициализировать проект vite
-
Инициализируйте проект, откройте окно терминала в рабочей области, для
window
Пользовательcmd
, а затем выполните следующую командуyarn create vite-app my-vue3
После выполнения будет выведено следующее.Вы видите, что новый проект очень быстрый, просто используйте
1.63s
-
После инициализации проекта перейдите
cd my-vue3
Войдите в проект, а затем выполнитеyarn
Зависимости установки (здесь рекомендуется зеркало Taobao, так быстрее) -
После установки зависимостей нужно пройти
yarn dev
Стартовый проектВы моментально испытали ощущение запуска проекта за считанные секунды?После запуска можно пройти
http://localhost:3000
приезжайте в гости на проект
Посмотреть структуру проекта
использоватьvscode
После открытия проекта вы можете просмотреть только что созданную структуру проекта иvue-cli4
Создаваемая структура проекта в основном одинакова, и мы все с ней знакомы.App.vue
иmain.js
Просмотр содержимого файла main.js
Открытымmain.js
import { createApp } from 'vue'
import App from './App.vue'
import './index.css'
createApp(App).mount('#app')
нашел для созданияVue
Путь изменился, он оказался сквознымnew Vue
метод инициализацииVue
,существуетVue3.0
, изменено, чтобы пройтиcreateApp
путь, оVue3.0
Больше способов использования мы постепенно познакомим вас в следующем цикле статей.
настроить машинопись
typescript
Сейчас это стало одним из необходимых навыков во фронтенде, и большое количество проектов стало базироваться на нем.typescript
развивать. в настоящее время используетVue2.0
когда, потому чтоVue2.0
без правtypescript
поддержку, так что пользуйтесьts
Функция развития выглядит немного неудобно. но здесьVue3
, его собственный исходный код основан наts
развито, так что даts
Естественно имеет большую поддержку. использоватьvite
настроитьtypescript
Это очень просто, просто следуйте инструкциям ниже.
-
Установить
typescript
yarn add typescript -D
-
инициализация
tsconfig.json
# 然后在控制台执行下面命令 npx tsc --init
-
будет
main.js
превратиться вmain.ts
, в то время какindex.html
Ссылка внутри также изменена наmain.ts
, через необходимость модификацииApp.vue
иHelloWorld.vue
файл, измененный следующим образом<!--将 <script> 修改为 <script lang="ts">--> <script lang="ts"> import HelloWorld from './components/HelloWorld.vue' export default { name: 'App', components: { HelloWorld } } </script>
После завершения модификации к проекту можно будет получить доступ, перезапустив его. Хотя эта конфигурация в порядке, но откройте
main.ts
найдуimport App from App.vue
сообщит об ошибке:Cannot find module './App.vue' or its corresponding type declarations.
, это потому что сейчасts
еще не идентифицированvue
файле требуется следующая конфигурация:-
Добавьте в корневой каталог проекта
shim.d.ts
документ -
Добавьте следующее
declare module "*.vue" { import { Component } from "vue"; const component: Component; export default component; }
Затем вы можете с радостью использовать его в компоненте
ts
охватывать -
настроитьvue-router
существуетVue2.0
В нашей маршрутизации мы обычно используемvue-router
,существуетVue3.0
все еще можно использоватьvue-router
, но сVue3.0
такой же токvue-router
версия такжеbeta
версия, на момент написания этой статьи версия4.0.0-beta7
Установитьvue-router
потому что в настоящее времяvue-router
противvue3.0
версия все ещеbeta
версия, поэтому не может пройти напрямуюyarn add vue-router
Для установки нужно привести номер версии
yarn add vue-router@4.0.0-beta.7
Настроить vue-маршрутизатор
в проектеsrc
новый каталог нижеrouter
каталог, затем добавьтеindex.ts
файл, добавьте в файл следующее
import {createRouter, createWebHashHistory} from 'vue-router'
// 在 Vue-router新版本中,需要使用createRouter来创建路由
export default createRouter({
// 指定路由的模式,此处使用的是hash模式
history: createWebHashHistory(),
// 路由地址
routes: []
})
с новымVue3.0
Метод инициализации изменился так же,vue-router
Метод инициализацииcreateRouter
для инициализации маршрута.
будетrouter
познакомился сmain.ts
середина
Исправлятьmain.ts
Содержимое файла следующее
import { createApp } from 'vue'
import App from './App.vue'
import './index.css'
import router from './router/index'
const app = createApp(App)
// 通过use 将 路由插件安装到 app 中
app.use(router)
app.mount('#app')
настроить vuex
иvue-router
такой же, новыйvuex
в настоящее время также вbeta
версия, текущая версия4.0.0-beta.4
установить вуекс
yarn add vuex@4.0.0-beta.4
настроить vuex
в проектеsrc
новый каталог нижеstore
каталог и добавитьindex.ts
файл, добавьте в файл следующее
import { createStore } from 'vuex'
interface State {
userName: string
}
export default createStore({
state(): State {
return {
userName: "子君",
};
},
});
познакомился сmain.ts
середина
import { createApp } from 'vue'
import App from './App.vue'
import './index.css'
import router from './router/index'
import store from './store/index'
const app = createApp(App)
app.use(router)
app.use(store)
app.mount('#app')
Разработать TodoList
С помощью вышеуказанной серии операций наша среда разработки была настроена, и затем мы сначала разработаем новую среду разработки.TodoList
, чтобы убедиться, что это нормально.
Добавить кtodolist
страница
-
Сначала мы первые
src
Создайте новый в каталогеviews
каталог, а затем создать в нем новый файлtodo-list.vue
, и добавьте в файл следующее<template> <div class="todo-list"> <div> <label>新增待办</label> <input v-model="state.todo" @keyup.enter="handleAddTodo"> </div> <div> <h3>待办列表({{todos.length}})</h3> <ul> <li v-for="item in todos" :key="item.id" @click="handleChangeStatus(item, true)"> <input type="checkbox"> <label>{{item.text}}</label> </li> </ul> </div> <div><h3>已办列表({{dones.length}})</h3></div> <ul> <li v-for="item in dones" :key="item.id" @click="handleChangeStatus(item, false)"> <input type="checkbox" checked> <label>{{item.text}}</label> </li> </ul> </div> </template> <script lang="ts"> // 在vue2中 data 在vue3中使用 reactive代替 import { reactive, computed } from 'vue' import { useRouter } from 'vue-router' export default { // setup相当于vue2.0的 beforeCreate和 created,是vue3新增的一个属性,所有的操作都在此属性中完成 setup(props, context) { // 通过reactive 可以初始化一个可响应的数据,与Vue2.0中的Vue.observer很相似 const state = reactive({ todoList: [{ id: 1, done: false, text: '吃饭' },{ id: 2, done: false, text: '睡觉' },{ id: 3, done: false, text: '打豆豆' }], todo: '' }) // 使用计算属性生成待办列表 const todos = computed(() => { return state.todoList.filter(item => !item.done) }) // 使用计算属性生成已办列表 const dones = computed(() => { return state.todoList.filter(item => item.done) }) // 修改待办状态 const handleChangeStatus = (item ,status) => { item.done = status } // 新增待办 const handleAddTodo = () => { if(!state.todo) { alert('请输入待办事项') return } state.todoList.push({ text: state.todo, id: Date.now(), done: false }) state.todo = '' } // 在Vue3.0中,所有的数据和方法都通过在setup 中 return 出去,然后在template中使用 return { state, todos, dones, handleChangeStatus, handleAddTodo } } } </script> <style scoped> .todo-list{ text-align: center; } .todo-list ul li { list-style: none; } </style>
Настроить маршрутизацию
-
Первое место
App.vue
Содержимое файла изменено на<template> <router-view></router-view> </template> <script lang="ts"> export default { name: 'App' } </script>
-
затем изменить
router/index.ts
файл, добавить новый маршрутimport {createRouter, createWebHashHistory} from 'vue-router' // 在 Vue-router新版本中,需要使用createRouter来创建路由 export default createRouter({ // 指定路由的模式,此处使用的是hash模式 history: createWebHashHistory(), // 路由地址 routes: [{ path: '/todolist', // 必须添加.vue后缀 component: () => import('../views/todo-list.vue') }] })
Тогда мы можем пройти
http://localhost:3000/#/todolist
посещатьTodoList
, эффект показан ниже
-
Суммировать
До сих пор мыVue3.0
Среда разработки проекта завершена.Конечно, есть еще много вещей, которые нужно улучшить.Например, нам еще нужно ее настроить.typescript
настроить, а затем добавитьeslint
и Т. Д. В то же время, как перепрыгнуть маршрут в компоненте, используйтеvuex
Я еще не объяснил это, но, по крайней мере, мы начали, и в следующей статье будет рассказано больше. Эта статья была впервые опубликована в открытом доступесобраниеНет. [Небольшая игра на переднем конце], следуйте за мной, давайте обсудим вместеVue3.0
Эпилог
Не истощайте свое вдохновение и воображение, не будьте рабом своих моделей. - Винсент Ван Гог