【HTMLページでのvue3文法テンプレートの紹介】vue3文法とElementul-plusコンポーネントライブラリをHTMLページで使ったシンプルなテンプレート

序文

他の場所を見ることは足場を直接使用しているため、これは最近これらのものを見ているだけです。
このプロジェクトをHTML上で直接使用したいと考えています。
そこで、html上でvue3の構文を使う方法を試してみたところ、
今のところ使えることが分かりました。
参考までに記録、悪い箇所があればフォロー改善

レンダリング

ここでは、変数の配列ループをレンダリングできるかどうか
、およびデータ更新を含む elementul-plus コンポーネントを使用できるかどうかを確認する簡単なテストを示します。
モニタリングやライフサイクルの使用もあり、最も単純なテンプレートが最初に記録されます。
ここに画像の説明を挿入

コード

ここでの主な点は、return がページを呼び出せるように変数とメソッドを公開することです。
変数やメソッドを直接グループ化するほうが便利ですが、
ここではcreateAppの下段にelementul-plusを登録しておかないと使えません。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vue3语法模板</title>
    <script src="https://unpkg.com/vue@next"></script>
    <link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css" />
    <script src="https://unpkg.com/element-plus"></script>
</head>
<style>
</style>

<body>
    <div style="width:100%;" id="app">
        <div>{
    
    {
    
    exp_id}}</div>
        <div>{
    
    {
    
    fullNum}}</div>
        <div v-for="item in dateTime" :key="item">{
    
    {
    
    item}}</div>
        <el-button type="primary" @click="upload('更新')">更新</el-button>
        <el-button type="success" @click="sets('恢复')">恢复</el-button>
        <el-button type="warning" @click="dialog">打开弹框</el-button>
        <div>
            <el-select v-model="value" class="m-2" placeholder="Select" size="large">
                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
            </el-select>
        </div>
        <el-dialog v-model="dialogVisible" title="Tips" width="30%">
            <span>This is a message</span>
            <template #footer>
                <span class="dialog-footer">
                    <el-button @click="dialogVisible = false">Cancel</el-button>
                    <el-button type="primary" @click="dialogVisible = false">
                        Confirm
                    </el-button>
                </span>
            </template>
        </el-dialog>
    </div>
</body>

</html>
<script>
    Object.assign(window, Vue);
    const vue3Composition = {
    
    
        setup() {
    
    
            // 变量部分
            const data = reactive({
    
    
                exp_id: '虚拟实验id',
                dateTime: [1, 2, 3, 4, 5],
                value: '',
                dialogVisible: false,
                options: [{
    
    
                        value: 'Option1',
                        label: 'Option1',
                    },
                    {
    
    
                        value: 'Option2',
                        label: 'Option2',
                    }
                ]
            });
            // toRef: 复制 reactive 里的单个属性并转成 ref
            // toRefs: 复制 reactive 里的所有属性并转成 ref
            const dataRef = toRefs(data)
            // 监听
            watch(dataRef.exp_id, (newName, oldName) => {
    
    
                console.log("新数据", newName);
                console.log("老数据", oldName);
            })
            // 计算属性
            dataRef.fullNum = computed(() => {
    
    
                return dataRef.value
            });
            // 生命周期 mounted
            onMounted(() => {
    
    
                console.log(`我是Mounted生命周期`)
            })
            // 函数部分
            const methods = reactive({
    
    
                upload(e) {
    
    
                    dataRef.exp_id.value = '修改'
                    dataRef.dateTime.value = [8, 9, 10, 11, 12]
                    //this.dialog() //调用其他方法加this可以调用到
                },
                sets(e) {
    
    
                    dataRef.exp_id.value = '虚拟实验id'
                    dataRef.dateTime.value = [1, 2, 3, 4, 5]
                },
                dialog() {
    
    
                    dataRef.dialogVisible.value = true
                }
            })
            return {
    
    
                ...dataRef,
                ...methods
            }
        },
    }
    const app = createApp(vue3Composition).use(ElementPlus).mount("#app");//初始化
</script>

おすすめ

転載: blog.csdn.net/seeeeeeeeeee/article/details/131673444